File size: 1,611 Bytes
a6fbb8d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import { userService } from "../services/user.service";
import { jwtHelper } from "../../../../helpers/jwt.helper";

export class authController {

    static async register(req, res) {
        try {
            let result = await userService.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
            })
        }
    }

    static async login(req, res) {
        try {
            const { email, password } = req.body;
            let result: { success: boolean; code: number; record?: any; message?: string } = await userService.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
            })
        }
    }
}