diff --git a/src/controllers/userController.js b/src/controllers/userController.js index 8b536c56..4f780020 100644 --- a/src/controllers/userController.js +++ b/src/controllers/userController.js @@ -12,7 +12,7 @@ const boom = require("boom"); // Get Data Models const { Supplier, generateSupplierId, FriendRequest,DeliveryBoy} = require("../models/supplier") -const { User,Counter, generateBookingId,resetCounter,generateCustomerId,ProfilePicture} = require('../models/User') +const { User,Counter, generateBookingId,resetCounter,generateCustomerId,ProfilePicture, AddTeamMembers} = require('../models/User') //const User = require("../models/User"); const customJwtAuth = require("../customAuthJwt"); @@ -738,3 +738,56 @@ exports.forgotPasswordSupplier = async (req, reply) => { }; +exports.addTeamMembers = async (req, reply) => { + try { + + const customerId = req.params.customerId + //const username = req.params.username; + + console.log(req.params); + //const {username} = loginObject.user.username; + //console.log(loginObject.user.username) + // const userInfo = await User.findOne({ username: username.toString() }); + // const updateData = req.body; + + // console.log("This is the reply in the handler after the validations", reply); + deliveryData = { + customerId: customerId, + teamAdminName: req.body.teamAdminName, + name: req.body.Name, + phone: req.body.phone, + }; + + var agent_mobile = req.body.phone + + var i_agent = await AddTeamMembers.findOne({ phone: agent_mobile}) + if(i_agent){ + throw new Error('phone already exists'); + } + else { + + var agent = new AddTeamMembers(deliveryData); + + checkFormEncoding = isUserFormUrlEncoded(req); + if (checkFormEncoding.isUserFormUrlEncoded) { + usertobeInserted = checkFormEncoding.agent; + console.log("thsi true url string"); + agent.customerId = usertobeInserted.customerId + agent.teamAdminName = usertobeInserted.teamAdminName + agent.name = usertobeInserted.name; + agent.phone = usertobeInserted.phone; + + } + } + + const insertedagent = await agent.save(); + + console.log("inster...", insertedagent) + + return insertedagent; + + + } catch (err) { + throw boom.boomify(err); + } +}; diff --git a/src/models/User.js b/src/models/User.js index 0af6547c..c6509d30 100644 --- a/src/models/User.js +++ b/src/models/User.js @@ -188,10 +188,24 @@ const profilePictureSchema = new Schema({ } }); +const teamMembersSchema = new mongoose.Schema({ + customerId:{ type: String, default: null }, + teamAdminName:{ type: String, default: null }, + name: { type: String, default: null }, + phone: { type: String, default: null,unique:true }, + alternativeContactNumber : { type : String,default: null }, + phoneVerified: { type: Boolean, default: false }, + phoneVerificationCode: { type: Number, default: 11111 }, + passwordResetCode: { type: Number, default: code }, + oneTimePasswordSetFlag: { type: Boolean, default: false }, + fcmId: { type: String, default: null }, +}); + const ProfilePicture = mongoose.model('ProfilePicture', profilePictureSchema); const Counter = mongoose.model('Counter', CounterSchema); const User = mongoose.model("User", userSchema); +const AddTeamMembers = mongoose.model("AddTeamMembers", teamMembersSchema); // Exporting our model objects @@ -200,4 +214,4 @@ const User = mongoose.model("User", userSchema); //module.exports = mongoose.model("User", userSchema); -module.exports = { User,Counter, generateCustomerId,generateBookingId ,resetCounter,ProfilePicture}; +module.exports = { User,Counter, generateCustomerId,generateBookingId ,resetCounter,ProfilePicture,AddTeamMembers}; diff --git a/src/routes/usersRoute.js b/src/routes/usersRoute.js index bba97470..b49371b9 100644 --- a/src/routes/usersRoute.js +++ b/src/routes/usersRoute.js @@ -612,6 +612,48 @@ module.exports = function (fastify, opts, next) { // onResponse: (request,reply) => {validationHandler.resetPassword(request,reply)} }); + fastify.route({ + method: "POST", + url: "/api/addTeammembers/:customerId", + schema: { + tags: ["User"], + description: "This is for adding Team members", + summary: "This is for adding Team members", + params: { + required: ["customerId"], + type: "object", + properties: { + customerId: { + type: "string", + description: "customerId", + }, + }, + }, + body: { + type: "object", + properties: { + teamAdminName: { type: "string"}, + Name: { type: "string" }, + phone: { type: "string" }, + }, + + }, + security: [ + { + basicAuth: [], + }, + ], + }, + preHandler: [ + //validationHandler.fieldCheck, + //validationHandler.verifySupplier, + // validationHandler.validatePhoneFormat, + //validationHandler.validateEmailFormat, + ], + handler: userController.addTeamMembers, + }); + + fastify.route({ method: "DELETE", url: "/api/logout",