From 132d6c1cb8e63bce3ef5a3379f9bde6306860971 Mon Sep 17 00:00:00 2001 From: Gowtham M Date: Thu, 23 Oct 2025 09:36:20 +0530 Subject: [PATCH] login merged for both user : GWM --- app/controllers/auth.controller.js | 23 +++++- app/controllers/establishment.controller.js | 28 +++---- .../establishment_user.controller.js | 26 +++--- app/routes/routes.js | 81 ++++++++----------- 4 files changed, 78 insertions(+), 80 deletions(-) diff --git a/app/controllers/auth.controller.js b/app/controllers/auth.controller.js index 1730134..e847117 100644 --- a/app/controllers/auth.controller.js +++ b/app/controllers/auth.controller.js @@ -4,6 +4,7 @@ const jwt = require("jsonwebtoken"); require("dotenv").config(); const User = db.user; +const EstablishmentUser = db.EstablishmentUser; // Register new user exports.register = async (req, res) => { @@ -29,13 +30,27 @@ exports.login = async (req, res) => { try { const { email, password } = req.body; - const user = await User.findOne({ where: { email } }); - if (!user) res.status(404).send({'status':"failed",'message':"User not found",'data': ""}); + userRole = 'Admin' + userData = await EstablishmentUser.findOne({ where: { email } }); + if (!userData) { + userData = await User.findOne({ where: { email } }); + userRole = 'EstablishmentUser' + if (!userData) res.status(404).send({'status':"failed",'message':"User not found",'data': ""}); + } - const validPass = await bcrypt.compare(password, user.password); + + const validPass = await bcrypt.compare(password, userData.password); if (!validPass) res.status(401).send({'status':"failed",'message':"Invalid password",'data': ""}); - const token = jwt.sign({ id: user.id, email: user.email }, process.env.JWT_SECRET, { + + if(userRole == 'Admin') + { + tokenData = { id: userData.id, email: userData.email , name: userData.name , role : userRole } + }else{ + tokenData = { id: userData.id, email: userData.email , name: userData.name , role : userRole , establishment_id: userData.establishment_id } + } + + const token = jwt.sign(tokenData, process.env.JWT_SECRET, { expiresIn: "6h", }); diff --git a/app/controllers/establishment.controller.js b/app/controllers/establishment.controller.js index 2da42ca..69c8de6 100644 --- a/app/controllers/establishment.controller.js +++ b/app/controllers/establishment.controller.js @@ -1,7 +1,7 @@ const db = require("../models"); const bcrypt = require("bcryptjs"); const Establishment = db.establishment; -const EstablishmentUser = db.establishment_user; +const EstablishmentUser = db.EstablishmentUser; // Create Establishment + linked user exports.createEstablishment = async (req, res) => { @@ -39,10 +39,10 @@ exports.createEstablishment = async (req, res) => { // }); - res.status(201).send({'status':"success",'message':"Establishment and linked user created successfully",'data': { establishment } }); + return res.status(201).send({'status':"success",'message':"Establishment and linked user created successfully",'data': { establishment } }); } catch (err) { - res.status(500).send({'status':"failed",'message':err.message }); + return res.status(500).send({'status':"failed",'message':err.message }); } }; @@ -61,10 +61,10 @@ exports.getAllEstablishments = async (req, res) => { ], }); - res.status(200).send({'status':"success",'message':"Fetched successfully",'data': data }); + return res.status(200).send({'status':"success",'message':"Fetched successfully",'data': data }); } catch (err) { - res.status(500).send({'status':"failed",'message':err.message }); + return res.status(500).send({'status':"failed",'message':err.message }); } }; @@ -76,12 +76,12 @@ exports.getEstablishmentById = async (req, res) => { include: [{ model: EstablishmentUser, as: "users" }], }); - if (!data) res.status(404).send({'status':"failed",'message':"Record Not found",'data': "" }); + if (!data) return res.status(404).send({'status':"failed",'message':"Record Not found",'data': "" }); - res.status(200).send({'status':"success",'message':"Fetched successfully",'data': data }); + return res.status(200).send({'status':"success",'message':"Fetched successfully",'data': data }); } catch (err) { - res.status(500).send({'status':"failed",'message':err.message }); + return res.status(500).send({'status':"failed",'message':err.message }); } }; @@ -93,12 +93,12 @@ exports.updateEstablishment = async (req, res) => { where: { id: req.params.id }, }); - if (!updated) res.status(404).send({'status':"failed",'message':"Record Not found",'data': "" }); + if (!updated){ return res.status(404).send({'status':"failed",'message':"Record Not found",'data': "" }); } - res.status(200).send({'status':"success",'message':"Updated successfully",'data': "" }); + return res.status(200).send({'status':"success",'message':"Updated successfully",'data': "" }); } catch (err) { - res.status(500).send({'status':"failed",'message':err.message }); + return res.status(500).send({'status':"failed",'message':err.message }); } }; @@ -108,11 +108,11 @@ exports.deleteEstablishment = async (req, res) => { const deleted = await Establishment.destroy({ where: { id: req.params.id } }); - if (!deleted) res.status(404).send({'status':"failed",'message':"Record Not found",'data': "" }); + if (!deleted) return res.status(404).send({'status':"failed",'message':"Record Not found",'data': "" }); - res.status(200).send({'status':"success",'message':"Deleted successfully",'data': "" }); + return res.status(200).send({'status':"success",'message':"Deleted successfully",'data': "" }); } catch (err) { - res.status(500).send({'status':"failed",'message':err.message }); + return res.status(500).send({'status':"failed",'message':err.message }); } }; diff --git a/app/controllers/establishment_user.controller.js b/app/controllers/establishment_user.controller.js index 769fa37..02b64bc 100644 --- a/app/controllers/establishment_user.controller.js +++ b/app/controllers/establishment_user.controller.js @@ -1,6 +1,6 @@ const db = require("../models"); const bcrypt = require("bcryptjs"); -const EstablishmentUser = db.establishment_user; +const EstablishmentUser = db.EstablishmentUser; // Create User exports.createUser = async (req, res) => { @@ -17,10 +17,10 @@ exports.createUser = async (req, res) => { gender, }); - res.status(201).send({'status':"success",'message':"Creation successful",'data': user }); + return res.status(201).send({'status':"success",'message':"Creation successful",'data': user }); } catch (err) { - res.status(500).send({'status':"failed",'message':err.message }); + return res.status(500).send({'status':"failed",'message':err.message }); } }; @@ -29,10 +29,10 @@ exports.getAllUsers = async (req, res) => { try { const users = await EstablishmentUser.findAll({ where:{ establishment_id : req.query.establishment_id} }); - res.status(200).send({'status':"success",'message':"Fetched successfully",'data': users }); + return res.status(200).send({'status':"success",'message':"Fetched successfully",'data': users }); } catch (err) { - res.status(500).send({'status':"failed",'message':err.message }); + return res.status(500).send({'status':"failed",'message':err.message }); } }; @@ -44,10 +44,10 @@ exports.getUserById = async (req, res) => { if (!user) res.status(404).send({'status':"failed",'message':"Record not found",'data': "" }); - res.status(200).send({'status':"success",'message':"Fetched successfully",'data': user }); + return res.status(200).send({'status':"success",'message':"Fetched successfully",'data': user }); } catch (err) { - res.status(500).send({'status':"failed",'message':err.message }); + return res.status(500).send({'status':"failed",'message':err.message }); } }; @@ -66,12 +66,12 @@ exports.updateUser = async (req, res) => { where: { id: req.params.id }, }); - if (!updated) res.status(404).send({'status':"failed",'message':"Record not found",'data': "" }); + if (!updated) return res.status(404).send({'status':"failed",'message':"Record not found",'data': "" }); - res.status(200).send({'status':"success",'message':"Record updated successfully",'data': "" }); + return res.status(200).send({'status':"success",'message':"Record updated successfully",'data': "" }); } catch (err) { - res.status(500).send({'status':"failed",'message':err.message }); + return res.status(500).send({'status':"failed",'message':err.message }); } }; @@ -81,11 +81,11 @@ exports.deleteUser = async (req, res) => { const deleted = await EstablishmentUser.destroy({ where: { id: req.params.id } }); - if (!deleted) res.status(404).send({'status':"failed",'message':"Record not found",'data': "" }); + if (!deleted) return res.status(404).send({'status':"failed",'message':"Record not found",'data': "" }); - res.status(200).send({'status':"success",'message':"Record deleted successfully",'data': "" }); + return res.status(200).send({'status':"success",'message':"Record deleted successfully",'data': "" }); } catch (err) { - res.status(500).send({'status':"failed",'message':err.message }); + return res.status(500).send({'status':"failed",'message':err.message }); } }; diff --git a/app/routes/routes.js b/app/routes/routes.js index 62f551d..afb6508 100644 --- a/app/routes/routes.js +++ b/app/routes/routes.js @@ -21,14 +21,12 @@ const dashboardController = require("../controllers/dashboard.controller"); /** * @swagger * tags: - * - name: Admin Auth + * - name: Admin And Establishments User Auth * description: Authentication * - name: Admin Users * description: User management APIs * - name: Establishments * description: CRUD APIs for managing Establishments - * - name: Establishments User Auth - * description: Establishments User Auth APIs * - name: Establishment Users * description: CRUD APIs for managing Establishment Users * - name: Products @@ -80,7 +78,7 @@ const dashboardController = require("../controllers/dashboard.controller"); * /api/auth/admin_register: * post: * summary: Register new Admin-user (For testing purpose only) - * tags: [Admin Auth] + * tags: [Admin And Establishments User Auth] * security: * - appSignature: [] * requestBody: @@ -118,8 +116,8 @@ router.post("/auth/admin_register",[verifySignature], authController.register); * @swagger * /api/auth/admin_login: * post: - * summary: Login Admin-user and get JWT token - * tags: [Admin Auth] + * summary: Login Admin-user / Establishments-user and get JWT token + * tags: [Admin And Establishments User Auth] * security: * - appSignature: [] * requestBody: @@ -689,58 +687,43 @@ router.delete("/establishment-users/:id",[verifySignature, verifyToken], establi -/** - * @swagger - * /api/auth/user_login: - * post: - * summary: Login as establishment user - * tags: [Establishments User Auth] - * security: - * - appSignature: [] - * requestBody: - * required: true - * content: - * application/json: - * schema: - * type: object - * required: - * - email - * - password - * properties: - * email: - * type: string - * example: gem@alpha.com - * password: - * type: string - * example: StrongPass@123 - * responses: - * 200: - * description: Login successful - * 400: - * description: Missing fields - * 401: - * description: Invalid credentials - * 404: - * description: User not found - * 500: - * description: Server error - */ -router.post("/auth/user_login",[verifySignature], establishmentUserAuthController.login); - // /** // * @swagger -// * /api/auth/user_logout: +// * /api/auth/user_login: // * post: -// * summary: Logout user (client should discard JWT token) +// * summary: Login as establishment user // * tags: [Establishments User Auth] // * security: // * - appSignature: [] -// * - bearerAuth: [] +// * requestBody: +// * required: true +// * content: +// * application/json: +// * schema: +// * type: object +// * required: +// * - email +// * - password +// * properties: +// * email: +// * type: string +// * example: gem@alpha.com +// * password: +// * type: string +// * example: StrongPass@123 // * responses: // * 200: -// * description: Logout successful +// * description: Login successful +// * 400: +// * description: Missing fields +// * 401: +// * description: Invalid credentials +// * 404: +// * description: User not found +// * 500: +// * description: Server error // */ -// router.post("/auth/user_logout",[verifySignature, verifyToken], establishmentUserAuthController.logout); +// router.post("/auth/user_login",[verifySignature], establishmentUserAuthController.login);