Skip to content

Commit dee6cc1

Browse files
committed
upto role permission added
1 parent c3c4d4a commit dee6cc1

File tree

2,549 files changed

+228145
-675
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,549 files changed

+228145
-675
lines changed

backend/config/db.js

Lines changed: 10 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,21 @@
1-
const mysql = require('mysql2/promise');
1+
const { Sequelize } = require('sequelize');
22
const dotenv = require('dotenv');
33
dotenv.config();
44

5-
const createMainDBConnection = async () => {
6-
return await mysql.createConnection({
7-
host: "localhost",
8-
user: "saw1993",
9-
password: '1234',
10-
database: "mris"
5+
// Create a Sequelize instance for the main database connection
6+
const createMainDBConnection = () => {
7+
return new Sequelize('mris', 'saw1993', '1234', {
8+
host: 'localhost',
9+
dialect: 'mysql'
1110
});
1211
};
1312

14-
const createAgencyDBConnection = async (agencyDetails) => {
15-
return await mysql.createConnection({
13+
// Create a Sequelize instance for the agency database connection
14+
const createAgencyDBConnection = (agencyDetails) => {
15+
return new Sequelize(agencyDetails.db_name, agencyDetails.db_user, agencyDetails.db_password, {
1616
host: agencyDetails.db_host,
17-
user: agencyDetails.db_user,
18-
password: agencyDetails.db_password,
19-
database: agencyDetails.db_name
17+
dialect: 'mysql'
2018
});
2119
};
2220

2321
module.exports = { createMainDBConnection, createAgencyDBConnection };
24-
25-
/*
26-
27-
const mysql = require('mysql2/promise');
28-
require('dotenv').config();
29-
const { DB_HOST, DB_USER, DB_PASSWORD, DB_NAME } = process.env;
30-
31-
const pool2 = mysql.createPool({
32-
host: DB_HOST,
33-
user: DB_USER,
34-
password: DB_PASSWORD,
35-
database: DB_NAME
36-
});
37-
38-
const createMainDBConnection = async () => {
39-
return await mysql.createConnection({
40-
host: process.env.DB_HOST,
41-
user: process.env.DB_USER,
42-
password: process.env.DB_PASSWORD,
43-
database: process.env.USER_DB_NAME
44-
});
45-
};
46-
47-
48-
const pool = mysql.createPool({
49-
host: "localhost",
50-
user: "saw1993",
51-
password: '1234',
52-
database: "mris"
53-
});
54-
55-
56-
const pool1 = mysql.createPool({
57-
host: "23.111.142.162",
58-
user: "respicar_supun",
59-
password: '0717257984-930531383V',
60-
database: "respicar_mris"
61-
});
62-
63-
module.exports = pool;
64-
65-
*/
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
module.exports = {
2+
VIEW_USER: 1,
3+
EDIT_USER: 2,
4+
DELETE_USER: 3,
5+
CREATE_USER: 4,
6+
VIEW_DOCTORS: 5
7+
};
Lines changed: 22 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,39 @@
1-
const bcrypt = require('bcrypt');
2-
const jwt = require('jsonwebtoken');
3-
const { JWT_SECRET } = process.env;
4-
const { findUserByEmail, findUserByID ,getUserById} = require('../models/userModel');
5-
const { generateToken , verifyToken } = require('../utils/jwtUtils');
1+
const loginUser = require('../usecases/login/loginUser');
2+
const verifyUserToken = require('../usecases/login/verifyUserToken');
3+
const userRepository = require('../repositories/userRepository');
64
const logger = require('../config/logger');
7-
8-
const createResponse = (user = "", status = "Failed", message = "") => {
9-
return { user, status, message };
10-
};
11-
5+
const ResponseHandler = require('../utils/ResponseHandler');
126

137
const login = async (req, res) => {
148
const { email, password } = req.body;
15-
const user = await findUserByEmail(email);
16-
if (!user) {
17-
logger.warn(`Login failed: User with email ${email} not found`);
18-
const tokenResponse = {
19-
token: "",
20-
status:"User Not Found"
21-
};
22-
return res.status(400).send(tokenResponse);
23-
}
249

25-
const validPass = await bcrypt.compare(password, user.password);
26-
if (!validPass) {
27-
logger.warn(`Login failed: Incorrect password for email ${email}`);
28-
const tokenResponse = {
29-
token: "",
30-
status:"Invalid Password"
31-
};
32-
return res.status(400).send(tokenResponse);
10+
try {
11+
const { token } = await loginUser(email, password, userRepository);
12+
logger.info(`User logged in: ${email}`);
13+
res.header('auth-token', token);
14+
return ResponseHandler.success(res, { token }, 'User logged in successfully');
15+
} catch (error) {
16+
logger.warn(`Login failed: ${error.message}`);
17+
return ResponseHandler.fail(res, error.message, null, 400);
3318
}
34-
35-
const token = generateToken(user);
36-
logger.info(`User logged in: ${email}`);
37-
const tokenResponse = {
38-
token: token,
39-
status:"Success"
40-
};
41-
res.header('auth-token', token).send(tokenResponse);
4219
};
4320

4421
const verify = async (req, res) => {
4522
const token = req.header('Authorization')?.split(' ')[1];
4623

47-
if (!token) {
48-
logger.warn('No token provided');
49-
return res.status(401).send(createResponse("", "Failed", "No token Provided"));
50-
}
51-
52-
try {
53-
54-
const decoded = verifyToken(token);
55-
logger.info(`Token request verified`);
56-
57-
const user = await getUserById(decoded.id);
58-
59-
if (user.user_id > 0) {
60-
return res.status(200).send(createResponse(user, "Success", "User retrieved"));
61-
} else {
62-
return res.status(401).send(createResponse("", "Failed", "User Not Found"));
24+
if (!token) {
25+
logger.warn('No token provided');
26+
return ResponseHandler.fail(res, 'No token provided', null, 401);
6327
}
6428

65-
66-
29+
try {
30+
const user = await verifyUserToken(token, userRepository);
31+
logger.info('User token verified');
32+
return ResponseHandler.success(res, user, 'User retrieved successfully');
6733
} catch (err) {
68-
logger.error(`Invalid token: ${err.message}`);
69-
return res.status(401).send(createResponse("", "Failed", "Invalid token Provided"));
34+
logger.error(`Token verification failed: ${err.message}`);
35+
return ResponseHandler.fail(res, err.message, null, 401);
7036
}
7137
};
7238

73-
74-
75-
76-
module.exports = { login , verify};
39+
module.exports = { login, verify };

backend/controllers/doctorController.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ const Category = require('../models/doctorCategoryModel');
44
const Speciality = require('../models/specialityModel');
55
const logger = require('../config/logger');
66

7-
const { getUserById } = require('../models/userModel');
7+
const { getUserById } = require('../repositories/userRepository');
88
const { getAgencyDBDetails } = require('../models/agencyModel');
99
const { getDoctorsByAgency } = require('../models/doctorModel');
1010

backend/controllers/routeController.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const Route = require('../models/routeModel');
22
const logger = require('../config/logger');
3-
const { getUserById } = require('../models/userModel');
3+
const { getUserById } = require('../repositories/userRepository');
44
const { getAgencyDBDetails } = require('../models/agencyModel');
55

66
const addRoute = async (req, res) => {

backend/controllers/specialityController.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const Speciality = require('../models/specialityModel');
22
const logger = require('../config/logger');
3-
const { getUserById } = require('../models/userModel');
3+
const { getUserById } = require('../repositories/userRepository');
44
const { getAgencyDBDetails } = require('../models/agencyModel');
55
const { getDoctorsByAgency } = require('../models/doctorModel');
66

backend/controllers/town_controller.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
const Town = require('../models/townModel');
1+
const TownModel = require('../models/townModel');
22
const logger = require('../config/logger');
3-
const { getUserById } = require('../models/userModel');
3+
const { getUserById } = require('../repositories/userRepository');
44
const { getAgencyDBDetails } = require('../models/agencyModel');
55

66
const addTown = async (req, res) => {
@@ -27,7 +27,7 @@ const getAllTowns = async (req, res) => {
2727
const user = await getUserById(req.userId);
2828
const agency_id = user.agency_id;
2929
const agencyDBDetails = await getAgencyDBDetails(agency_id);
30-
const results = await Town.getTownsByAgency(agencyDBDetails);
30+
const results = await TownModel.getTownsByAgency(agencyDBDetails);
3131
res.status(200).json(results);
3232
} catch (err) {
3333
logger.error('Error fetching towns', { error: err.message });

backend/controllers/userController.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const bcrypt = require('bcrypt');
2-
const { createUser, updateUser, deleteUser } = require('../models/userModel');
2+
const { createUser, updateUser, deleteUser } = require('../repositories/userRepository');
33
const logger = require('../config/logger');
44

55
const addUser = async (req, res) => {

0 commit comments

Comments
 (0)