Skip to content

Commit 67c8cfc

Browse files
authored
Merge pull request #21 from TaskTrial/fix/20/authsolve
fix: edit in auth functions
2 parents ec7ccc8 + 1f5bfaa commit 67c8cfc

2 files changed

Lines changed: 41 additions & 2 deletions

File tree

src/controllers/auth.controller.js

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@ import { comparePassword, hashPassword } from '../utils/password.utils.js';
66
import { generateOTP } from '../utils/otp.utils.js';
77
import { sendEmail } from '../utils/email.utils.js';
88
import {
9+
forgotPasswordValidation,
910
resetPasswordValidation,
1011
signinValidation,
1112
signupValidation,
13+
verifyEmailValidation,
1214
} from '../validations/auth.validations.js';
1315
import {
1416
generateAccessToken,
@@ -82,6 +84,11 @@ export const signup = async (req, res) => {
8284

8385
export const verifyEmail = async (req, res) => {
8486
try {
87+
const { error } = verifyEmailValidation(req.body);
88+
if (error) {
89+
return res.status(400).json({ message: error.details[0].message });
90+
}
91+
8592
const { email, otp } = req.body;
8693

8794
const user = await prisma.user.findFirst({
@@ -176,7 +183,11 @@ export const signin = async (req, res) => {
176183

177184
export const forgotPassword = async (req, res) => {
178185
try {
179-
// TODO: must validate user inputs
186+
const { error } = forgotPasswordValidation();
187+
if (error) {
188+
return res.status(400).json({ message: error.details[0].message });
189+
}
190+
180191
const { email } = req.body;
181192

182193
// Find user
@@ -211,7 +222,6 @@ export const forgotPassword = async (req, res) => {
211222

212223
return res.status(200).json({
213224
message: 'Password reset OTP sent',
214-
userId: user.id, // TODO: delete userId from response
215225
});
216226
} catch (error) {
217227
return res
@@ -271,6 +281,10 @@ export const refreshAccessToken = async (req, res) => {
271281
try {
272282
const { refreshToken } = req.body;
273283

284+
if (!refreshToken) {
285+
return res.status(400).json({ message: 'Refresh token is required' });
286+
}
287+
274288
// Verify refresh token
275289
const decoded = jwt.verify(refreshToken, process.env.JWT_REFRESH_SECRET);
276290

src/validations/auth.validations.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,20 @@ export const signupValidation = (obj) => {
3232
return schema.validate(obj);
3333
};
3434

35+
export const verifyEmailValidation = (obj) => {
36+
const schema = Joi.object({
37+
email: Joi.string().email().required().trim().messages({
38+
'string.empty': 'Email is required.',
39+
'string.email': 'Please enter a valid email address.',
40+
}),
41+
otp: Joi.string().required().trim().messages({
42+
'string.empty': 'OTP is required.',
43+
}),
44+
});
45+
46+
return schema.validate(obj);
47+
};
48+
3549
export const signinValidation = (obj) => {
3650
const schema = Joi.object({
3751
email: Joi.string().email().required().trim().messages({
@@ -48,6 +62,17 @@ export const signinValidation = (obj) => {
4862
return schema.validate(obj);
4963
};
5064

65+
export const forgotPasswordValidation = (obj) => {
66+
const schema = Joi.object({
67+
email: Joi.string().email().required().trim().messages({
68+
'string.empty': 'Email is required.',
69+
'string.email': 'Please enter a valid email address.',
70+
}),
71+
});
72+
73+
return schema.validate(obj);
74+
};
75+
5176
export const resetPasswordValidation = (obj) => {
5277
const schema = Joi.object({
5378
email: Joi.string().email().required().trim().messages({

0 commit comments

Comments
 (0)