11const bcrypt = require ( 'bcrypt' ) ;
22const Common = require ( '../helpers/common' ) ;
33const userService = require ( '../services/userService' ) ;
4-
4+ const jwtToken = require ( '../helpers/jwtToken' ) ;
5+ let refreshTokensList = [ ] ;
56exports . register = async ( req , res , next ) => {
67 try {
7- req . body . password = await bcrypt ( req . body . password , 10 ) ;
8- console . log ( req . body . password ) ;
9- userService . saveUser ( req . body ) ;
8+ let user = await userService . getUserByEmail ( req . body . email ) ;
9+ if ( user ) {
10+ return Common . sendErrorResponse ( res , 200 , "user is already exist" , '' ) ;
11+ }
12+ let password = bcrypt . hashSync ( req . body . password , 10 ) ;
13+ req . body . password = password ;
14+ let result = await userService . saveUser ( req . body ) ;
15+ return Common . sendErrorResponse ( res , 201 , "user is register successfully" , '' ) ;
1016 }
1117 catch ( err ) {
12- return Common . sendErrorResponse ( res , 500 , "user is not register successfully" , '' ) ;
18+ return Common . sendErrorResponse ( res , 500 , "user is not register successfully" , err ) ;
19+ }
20+ }
21+
22+
23+ exports . login = async ( req , res , next ) => {
24+ try {
25+ const email = req . body . email ;
26+ let user = await userService . getUserByEmail ( req . body . email ) ;
27+ if ( ! user ) {
28+ return Common . sendErrorResponse ( res , 404 , "user is not found" , '' ) ;
29+ }
30+
31+ if ( await bcrypt . compare ( req . body . password , user . password ) ) {
32+ const accessToken = await jwtToken . generateAccessToken ( { username : req . body . email } ) ;
33+ const refreshToken = accessToken ;
34+ refreshTokensList . push ( refreshToken ) ;
35+ return Common . sendTokenResponse ( res , 200 , 'success' , accessToken , refreshToken ) ;
36+ }
37+ else {
38+ return Common . sendErrorResponse ( res , 401 , 'Email and Password is incorrect1' , '' ) ;
39+ }
40+ } catch ( err ) {
41+ return Common . sendErrorResponse ( res , 500 , "Internal Server Error" , err ) ;
42+ }
43+ }
44+
45+ exports . refreshToken = async ( req , res , next ) => {
46+ try {
47+ if ( ! refreshTokensList . includes ( req . body . token ) ) {
48+ return Common . sendErrorResponse ( res , 400 , 'Refresh Token Invalid' , '' ) ;
49+ }
50+
51+ refreshTokensList = refreshTokensList . filter ( ( c ) => c != req . body . token )
52+ const accessToken = await jwtToken . generateRefreshToken ( { username : req . body . email } ) ;
53+ const refreshToken = accessToken ;
54+ refreshTokensList . push ( refreshToken ) ;
55+ return Common . sendTokenResponse ( res , 200 , 'success' , accessToken , refreshToken ) ;
1356 }
14- }
57+ catch ( error ) {
58+ return Common . sendErrorResponse ( res , 500 , "Internal Server Error" , error ) ;
59+ }
60+
61+ }
62+
63+ exports . logout = async ( req , res , next ) => {
64+ try {
65+ if ( ! refreshTokensList . includes ( req . body . token ) ) {
66+ return Common . sendErrorResponse ( res , 400 , 'Refresh Token Invalid' , '' ) ;
67+ }
68+
69+ refreshTokensList = refreshTokensList . filter ( ( c ) => c != req . body . token ) ;
70+ return Common . sendSuccessResponse ( res , 200 , 'success' , '' ) ;
71+ }
72+ catch ( err ) {
73+ return Common . sendErrorResponse ( res , 500 , "Internal Server Error" , error ) ;
74+ }
75+ }
76+
0 commit comments