Skip to content
This repository was archived by the owner on Sep 4, 2024. It is now read-only.

Commit 92fe2a8

Browse files
Refactored users logic app wide
1 parent 2b226fa commit 92fe2a8

File tree

2 files changed

+20
-20
lines changed

2 files changed

+20
-20
lines changed

controllers/auth.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,26 @@ import { Request, Response } from "express";
22
import bcrypt from 'bcrypt';
33
import { AuthenticationError, ServerError } from "../lib/errors";
44
import JWT from "../lib/jwt";
5-
import { addUserAuthToken, getUserByEmail, saveUser, User, userToJSON } from "../models/users";
6-
import generateSuccessResponse from "../lib/generate-success-response";
5+
import Users, { User } from "../models/users";
6+
import SuccessResponse from "../lib/success-response";
77

88
export default class AuthController {
99
static async login(req: Request, res: Response) {
1010
let user: User | undefined;
1111

1212
try {
13-
user = await getUserByEmail(req.body.email);
13+
user = await Users.getUserByEmail(req.body.email);
1414
if (user == null) {
1515
throw new Error("Email and password combination do not match a user in our system.");
1616
} else if (!await bcrypt.compare(req.body.password, String(user.password))) {
1717
throw new Error("Email and password combination do not match a user in our system.");
1818
}
1919
} catch (e) {
20-
return res.status(401).json(AuthenticationError((e as Error).message));
20+
return AuthenticationError(res, (e as Error).message);
2121
}
2222

23-
return generateSuccessResponse(res, {
24-
data: userToJSON(user),
23+
return SuccessResponse(res, {
24+
data: Users.toJSON(user),
2525
access_token: JWT.generateAccessToken(user),
2626
token_type: 'bearer'
2727
});
@@ -33,13 +33,13 @@ export default class AuthController {
3333
try {
3434
user.email = req.body.email;
3535
user.password = await bcrypt.hash(req.body.password, 10);
36-
user = await saveUser(user);
36+
user = await Users.save(user);
3737
} catch (e) {
38-
return res.status(500).json(ServerError((e as Error).message));
38+
return ServerError(res, (e as Error).message);
3939
}
4040

41-
return generateSuccessResponse(res, {
42-
data: userToJSON(user),
41+
return SuccessResponse(res, {
42+
data: Users.toJSON(user),
4343
access_token: JWT.generateAccessToken(user),
4444
token_type: 'bearer'
4545
}, 201);
@@ -51,19 +51,19 @@ export default class AuthController {
5151
try {
5252
let matches = /^Bearer (.+)$/i.exec(String(req.get('Authorization'))) as RegExpExecArray;
5353
let token = matches[1].trim();
54-
await addUserAuthToken(Number(authUser.id), token);
54+
await Users.addUserAuthToken(Number(authUser.id), token);
5555
} catch (e) {
56-
return res.status(500).json(ServerError((e as Error).message));
56+
return ServerError(res, (e as Error).message);
5757
}
5858

59-
return generateSuccessResponse(res, {});
59+
return SuccessResponse(res, {});
6060
}
6161

6262
static async getMe(req: Request, res: Response) {
6363
const user = req.app.get('authUser') as User;
6464

65-
return generateSuccessResponse(res, {
66-
data: userToJSON(user)
65+
return SuccessResponse(res, {
66+
data: Users.toJSON(user)
6767
});
6868
}
6969
}

validators/auth.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { NextFunction, Request, Response } from 'express'
2-
import { getUsersCountWithEmail } from '../models/users';
2+
import Users from '../models/users';
33
import { ConflictError, InvalidFormDataError } from '../lib/errors';
44
import Joi from 'joi';
55

@@ -19,7 +19,7 @@ export default class AuthValidator {
1919
const validationResult = schema.validate(req.body);
2020

2121
if (validationResult.error) {
22-
return res.status(400).json(InvalidFormDataError(String(validationResult.error)));
22+
return InvalidFormDataError(res, String(validationResult.error));
2323
}
2424

2525
next();
@@ -40,9 +40,9 @@ export default class AuthValidator {
4040
const validationResult = schema.validate(req.body);
4141

4242
if (validationResult.error) {
43-
return res.status(400).json(InvalidFormDataError(String(validationResult.error)));
44-
} else if (await getUsersCountWithEmail(req.body.email) > 0) {
45-
return res.status(409).json(ConflictError('This email is not available.'));
43+
return InvalidFormDataError(res, String(validationResult.error));
44+
} else if (await Users.getUsersWithEmailCount(req.body.email) > 0) {
45+
return ConflictError(res, "This email is not available.");
4646
}
4747

4848
next();

0 commit comments

Comments
 (0)