parent
ecaec81a08
commit
6df643e8dd
@ -0,0 +1,74 @@
|
||||
const boom = require("boom");
|
||||
const bcrypt = require('bcrypt');
|
||||
const jwt = require('jsonwebtoken');
|
||||
const customJwtAuth = require("../customAuthJwt");
|
||||
const fastify = require("fastify")({
|
||||
logger: true,
|
||||
genReqId(req) {
|
||||
return uuidv4();
|
||||
},
|
||||
});
|
||||
const { Counter} = require('../models/User')
|
||||
|
||||
const {Department} = require('../models/Department')
|
||||
|
||||
const generateDepartmentId = async () => {
|
||||
const result = await Counter.findOneAndUpdate(
|
||||
{ _id: 'department_id' },
|
||||
{ $inc: { seq: 1 } },
|
||||
{ upsert: true, new: true }
|
||||
);
|
||||
return result.seq;
|
||||
};
|
||||
|
||||
exports.addDepartment = async (request, reply) => {
|
||||
try {
|
||||
const d_id = await generateDepartmentId();
|
||||
const departmentId = `AWDP${d_id}`;
|
||||
|
||||
const {
|
||||
phone,
|
||||
city,
|
||||
state,
|
||||
password,
|
||||
country,
|
||||
zone,
|
||||
address1,
|
||||
address2,
|
||||
pincode,
|
||||
departmentName,
|
||||
createdBy,
|
||||
updatedBy,
|
||||
} = request.body;
|
||||
|
||||
|
||||
const existingStore = await Department.findOne({ phone });
|
||||
if (existingStore) {
|
||||
return reply.status(400).send({ message: 'Phone is already registered' });
|
||||
}
|
||||
|
||||
const hashedPassword = await bcrypt.hash(password, 10);
|
||||
|
||||
const department = new Department({
|
||||
departmentId: departmentId,
|
||||
city,
|
||||
phone,
|
||||
address1,
|
||||
address2,
|
||||
services: { password: { bcrypt: hashedPassword } },
|
||||
state,
|
||||
zone,
|
||||
country,
|
||||
pincode,
|
||||
departmentName,
|
||||
createdBy,
|
||||
updatedBy,
|
||||
});
|
||||
|
||||
await department.save();
|
||||
|
||||
reply.send({department, message: 'Account Created Successfully' });
|
||||
} catch (err) {
|
||||
reply.status(500).send({ message: err.message });
|
||||
}
|
||||
};
|
@ -0,0 +1,42 @@
|
||||
const mongoose = require("mongoose");
|
||||
const Schema = mongoose.Schema;
|
||||
const ObjectId = Schema.Types.ObjectId;
|
||||
|
||||
|
||||
|
||||
const departmentSchema = new mongoose.Schema(
|
||||
{
|
||||
departmentId:{type:String},
|
||||
departmentName: { type: String },
|
||||
phone: { type: String, unique: true, trim: true },
|
||||
address1: String,
|
||||
address2: String,
|
||||
pincode: { type: String },
|
||||
zone: { type: String },
|
||||
city: { type: String },
|
||||
state: String,
|
||||
country: String,
|
||||
services: { password: { bcrypt: String } },
|
||||
createdAt: {
|
||||
type: Date,
|
||||
default: function () {
|
||||
return Date.now();
|
||||
},
|
||||
},
|
||||
createdBy: ObjectId,
|
||||
updatedAt: {
|
||||
type: Date,
|
||||
default: function () {
|
||||
return Date.now();
|
||||
},
|
||||
},
|
||||
updatedBy: ObjectId,
|
||||
},
|
||||
{ versionKey: false }
|
||||
);
|
||||
|
||||
|
||||
const Department = mongoose.model('Department', departmentSchema);
|
||||
|
||||
|
||||
module.exports = { Department};
|
@ -0,0 +1,45 @@
|
||||
const departmentController = require('../controllers/departmentController')
|
||||
|
||||
module.exports = function (fastify, opts, next) {
|
||||
|
||||
|
||||
fastify.route({
|
||||
method: "POST",
|
||||
url: "/api/departmentSignup",
|
||||
schema: {
|
||||
tags: ["Department"],
|
||||
description: "This is for creating a new Department Account",
|
||||
summary: "This is for creating a new Department Account",
|
||||
body: {
|
||||
type: "object",
|
||||
//required: ["phone", "username", "password", "role"], // Add role to required fields
|
||||
properties: {
|
||||
phone: { type: "string" },
|
||||
password: { type: "string" },
|
||||
city: { type: "string" },
|
||||
state: { type: "string" },
|
||||
country: { type: "string" },
|
||||
address1: { type: "string" },
|
||||
address2: { type: "string" },
|
||||
zone: { type: "string" },
|
||||
pincode: { type: "string" },
|
||||
departmentName: { type: "string" },
|
||||
|
||||
},
|
||||
},
|
||||
security: [
|
||||
{
|
||||
basicAuth: [],
|
||||
},
|
||||
],
|
||||
},
|
||||
handler: departmentController.addDepartment,
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
next();
|
||||
};
|
Loading…
Reference in new issue