Spaces:
Running
Running
File size: 2,139 Bytes
22f0230 a6fbb8d 1628025 433085e 260547f 433085e a6fbb8d 02fcdf7 1628025 22f0230 ac9dbd5 1628025 433085e ac9dbd5 1628025 ac9dbd5 1628025 a6fbb8d 22f0230 1628025 22f0230 1628025 a6fbb8d 22f0230 a6fbb8d 22f0230 1628025 22f0230 1628025 a6fbb8d 22f0230 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 68 69 |
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-register.validation";
import { loginValidation } from "../validation/user.Validation";
@Prefix("/user/auth")
export class AuthController extends BaseController {
private usersService = new UsersService();
setRoutes(): void {
this.router.post(
"/register",
bodyValidator(userRegisterValidation),
this.register
);
this.router.post("/login", bodyValidator(loginValidation), this.login);
}
register = async (req, res) => {
try {
let result = await this.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,
});
}
};
login = async (req, res) => {
try {
const { email, password } = req.body;
let result: {
success: boolean;
code: number;
record?: any;
message?: string;
} = await this.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,
});
}
};
}
|