Skip to content

Commit 798d36c

Browse files
committed
fix: error messages to global handler
1 parent db46c3f commit 798d36c

2 files changed

Lines changed: 23 additions & 17 deletions

File tree

src/controllers/admincontroller.js

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import User from '../models/User.js';
22
import bcrypt from 'bcrypt';
33
import jwt from 'jsonwebtoken';
44

5-
export const login = async (req, res) => {
5+
export const login = async (req, res, next) => {
66
try {
77
const { role, email, password } = req.body;
88

@@ -12,12 +12,16 @@ export const login = async (req, res) => {
1212
});
1313

1414
if (!user) {
15-
return res.status(401).json({ message: 'Invalid role or email' });
15+
const error = new Error("Invalid role or email");
16+
error.statusCode = 401;
17+
return next(error);
1618
}
1719

1820
const isMatch = await bcrypt.compare(password, user.password);
1921
if (!isMatch) {
20-
return res.status(401).json({ message: 'Invalid password' });
22+
const error = new Error("Invalid credentials");
23+
error.statusCode = 401;
24+
return next(error);
2125
}
2226

2327
const token = jwt.sign(
@@ -33,19 +37,17 @@ export const login = async (req, res) => {
3337
token,
3438
});
3539
} catch (error) {
36-
console.error('Login error:', error);
37-
res.status(500).json({
38-
message: 'Server error',
39-
error: error.message,
40-
});
40+
next(error);
4141
}
4242
};
4343

44-
export const updateDoctorWorkingHours = async (req, res) => {
44+
export const updateDoctorWorkingHours = async (req, res, next) => {
4545
try {
4646

4747
if (req.user.role !== 'admin') {
48-
return res.status(403).json({ message: "Access denied" });
48+
const error = new Error("Access denied");
49+
error.statusCode = 403;
50+
return next(error);
4951
}
5052

5153
const result = await doctorService.updateWorkingHours(
@@ -56,6 +58,6 @@ export const updateDoctorWorkingHours = async (req, res) => {
5658
res.status(200).json(result);
5759

5860
} catch (error) {
59-
res.status(400).json({ message: error.message });
61+
next(error);
6062
}
6163
};

src/controllers/patient.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const createPatient = async (req, res) => {
66
await patient.save();
77
res.status(201).json(patient);
88
} catch (err) {
9-
res.status(400).json({ message: err.message });
9+
next(err);
1010
}
1111
};
1212

@@ -15,7 +15,7 @@ const getPatients = async (req, res) => {
1515
const patients = await Patient.find();
1616
res.json(patients);
1717
} catch (err) {
18-
res.status(500).json({ message: err.message });
18+
next(err);
1919
}
2020
};
2121

@@ -29,12 +29,14 @@ const updatePatient = async (req, res) => {
2929
});
3030

3131
if (!patient) {
32-
return res.status(404).json({ message: 'Patient not found' });
32+
const error = new Error('Patient not found');
33+
error.statusCode = 404;
34+
return next(error);
3335
}
3436

3537
res.json(patient);
3638
} catch (err) {
37-
res.status(400).json({ message: err.message });
39+
next(err);
3840
}
3941
};
4042

@@ -45,12 +47,14 @@ const deletePatient = async (req, res) => {
4547
const patient = await Patient.findByIdAndDelete(id);
4648

4749
if (!patient) {
48-
return res.status(404).json({ message: 'Patient not found' });
50+
const error = new Error('Patient not found');
51+
error.statusCode = 404;
52+
return next(error);
4953
}
5054

5155
res.json({ message: 'Patient deleted successfully' });
5256
} catch (err) {
53-
res.status(500).json({ message: err.message });
57+
next(err);
5458
}
5559
};
5660

0 commit comments

Comments
 (0)