login merged for both user : GWM
This commit is contained in:
parent
dd60e960cb
commit
132d6c1cb8
@ -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",
|
||||
});
|
||||
|
||||
|
||||
@ -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 });
|
||||
}
|
||||
};
|
||||
|
||||
@ -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 });
|
||||
}
|
||||
};
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user