Spaces:
Running
Running
File size: 2,064 Bytes
2003362 a6fbb8d 1628025 433085e a6fbb8d 02fcdf7 1628025 ac9dbd5 1628025 433085e ac9dbd5 1628025 ac9dbd5 1628025 a6fbb8d ac9dbd5 1628025 a6fbb8d 1628025 a6fbb8d ac9dbd5 1628025 a6fbb8d 1628025 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
import { usersService } from "../services/users.service";
import { jwtHelper } from "../../../../helpers/jwt.helper";
import { BaseController } from "../../../../lib/controllers/controller.base";
import { Prefix } from "../../../common/decorators/prefix.decorator";
import { bodyValidator } from "../../../../helpers/validation.helper";
import { userRegisterValidation } from "../../../common/users/validation/user.baseValidation";
import { loginValidation } from "../validation/user.Validation";
@Prefix("/user/auth")
export class AuthController extends BaseController {
setRoutes(): void {
this.router.post(
"/register",
bodyValidator(userRegisterValidation),
this.register
);
this.router.post("/login", bodyValidator(loginValidation), this.login);
}
async register(req, res) {
try {
let result = await usersService.create(req.body);
return res.status(result.code).json(result);
} catch (err) {
console.log(`err.message`, err.message);
return res.status(500).json({
success: false,
code: 500,
error: err.message,
});
}
}
async login(req, res) {
try {
const { email, password } = req.body;
let result: {
success: boolean;
code: number;
record?: any;
message?: string;
} = await usersService.comparePassword(email, password);
if (!result.success) return res.status(result.code).json(result);
let payload = {
_id: result.record?._id,
name: result.record?.name,
email: result.record?.email,
number: result.record?.number,
role: result.record?.role,
};
const token = jwtHelper.generateToken(payload);
return res.status(result.code).json({
success: result.success,
token,
code: result.code,
record: result.record,
});
} catch (err) {
console.log(`err.message`, err.message);
return res.status(500).json({
success: false,
message: err.message,
});
}
}
}
|