diff --git a/src/controllers/userController.js b/src/controllers/userController.js index df0c42e4..d9d03a29 100644 --- a/src/controllers/userController.js +++ b/src/controllers/userController.js @@ -9,7 +9,8 @@ const libphonenumberjs = require("libphonenumber-js"); const boom = require("boom"); // Get Data Models -const User = require("../models/User"); +const { User,Counter, generateBookingId } = require('../models/User') +//const User = require("../models/User"); const customJwtAuth = require("../customAuthJwt"); const fastify = require("fastify")({ @@ -160,10 +161,9 @@ exports.editCuurentUserInfo = async (req, reply) => { exports.addUser = async (req, reply) => { try { - let i = 0 + var c_id = await generateBookingId() var building= ((req.body.buildingName).slice(0, 3)).toUpperCase(); - var customer_id = `AWS${building}${i}` - console.log(customer_id) + var customer_id = `AWS${building}${c_id}` // console.log("This is the reply in the handler after the validations", reply); userData = { customerId: customer_id, @@ -174,8 +174,8 @@ exports.addUser = async (req, reply) => { buildingName: req.body.buildingName, inchargeName: req.body.inchargeName, profile: { - firstName: req.body.firstname, - lastName: req.body.lastname, + firstName: req.body.firstName, + lastName: req.body.lastName, contactNumber: req.body.phone, country: req.body.country, state: req.body.state, @@ -186,6 +186,8 @@ exports.addUser = async (req, reply) => { notes: req.body.notes, }, }; + console.log(req.body.firstname) + console.log(req.body.lastname) var user = new User(userData); @@ -201,7 +203,6 @@ exports.addUser = async (req, reply) => { user.username = usertobeInserted.username; user.firstName = usertobeInserted.firstName; user.lastName = usertobeInserted.lastName; - user.lastName = usertobeInserted.lastName; user.phone = usertobeInserted.phone; user.emails = usertobeInserted.emails; user.passsword = usertobeInserted.password; diff --git a/src/handlers/userHandler.js b/src/handlers/userHandler.js index b71fa4e6..90c155bb 100644 --- a/src/handlers/userHandler.js +++ b/src/handlers/userHandler.js @@ -1,4 +1,6 @@ -const User = require("../models/User"); +const { User,Counter, generateBookingId } = require('../models/User') + +//const User = require("../models/User"); const Message = require("../models/Message"); const generator = require("generate-password"); const bcrypt = require("bcrypt"); diff --git a/src/models/User.js b/src/models/User.js index dd7508ea..ede6d299 100644 --- a/src/models/User.js +++ b/src/models/User.js @@ -10,6 +10,25 @@ const ObjectId = Schema.Types.ObjectId; // Store a random password reset code const code = Math.floor(100000 + Math.random() * 900000); const RoleSchema = new Schema({ name: String }); + +const CounterSchema = new mongoose.Schema({ + _id: { type: String, required: true }, + seq: { type: Number, default: 0 } +}); + + + + +const generateBookingId = async () => { + const result = await Counter.findOneAndUpdate( + { _id: 'booking_id' }, + { $inc: { seq: 1 } }, + { upsert: true, new: true } + ); + + return result.seq; +}; + const userSchema = new mongoose.Schema( { username: { type: String, unique: true, trim: true }, @@ -78,5 +97,14 @@ const userSchema = new mongoose.Schema( }, { versionKey: false } ); +const Counter = mongoose.model('Counter', CounterSchema); +const User = mongoose.model("User", userSchema); + + +// Exporting our model objects + + + +//module.exports = mongoose.model("User", userSchema); -module.exports = mongoose.model("User", userSchema); +module.exports = { User,Counter, generateBookingId };