@@ -29,14 +29,14 @@ import {
2929 ClassWrapper ,
3030 ClassMiddleware
3131} from "@overnightjs/core" ;
32- import { authHandler , bruteForceHandler } from "../helpers/middleware" ;
32+ import {
33+ authHandler ,
34+ bruteForceHandler ,
35+ validator
36+ } from "../helpers/middleware" ;
3337import { CREATED } from "http-status-codes" ;
3438import asyncHandler from "express-async-handler" ;
35- import {
36- joiValidate ,
37- safeRedirect ,
38- getCodeFromRequest
39- } from "../helpers/utils" ;
39+ import { safeRedirect , joiValidate } from "../helpers/utils" ;
4040import Joi from "@hapi/joi" ;
4141import { KeyValue } from "../interfaces/general" ;
4242import { FRONTEND_URL , BASE_URL } from "../config" ;
@@ -46,27 +46,16 @@ import { FRONTEND_URL, BASE_URL } from "../config";
4646@ClassWrapper ( asyncHandler )
4747export class AuthController {
4848 @Post ( "register" )
49- async register ( req : Request , res : Response ) {
50- const email = req . body . email ;
51- joiValidate (
49+ @Middleware (
50+ validator (
5251 {
5352 email : Joi . string ( )
5453 . email ( )
55- . required ( )
56- } ,
57- { email }
58- ) ;
59- const user = req . body ;
60- delete user . organizationId ;
61- delete user . email ;
62- if ( user . role == UserRole . ADMIN ) delete user . role ;
63- delete user . membershipRole ;
64- joiValidate (
65- {
54+ . required ( ) ,
6655 name : Joi . string ( )
6756 . min ( 3 )
57+ . regex ( / ^ [ a - z A - Z ] * $ / )
6858 . required ( ) ,
69- nickname : Joi . string ( ) . min ( 3 ) ,
7059 countryCode : Joi . string ( ) . length ( 2 ) ,
7160 password : Joi . string ( ) . min ( 6 ) ,
7261 gender : Joi . string ( ) . length ( 1 ) ,
@@ -75,8 +64,16 @@ export class AuthController {
7564 . max ( 5 ) ,
7665 timezone : Joi . string ( )
7766 } ,
78- user
79- ) ;
67+ "body"
68+ )
69+ )
70+ async register ( req : Request , res : Response ) {
71+ const email = req . body . email ;
72+ const user = req . body ;
73+ delete user . organizationId ;
74+ delete user . email ;
75+ if ( user . role == UserRole . ADMIN ) delete user . role ;
76+ delete user . membershipRole ;
8077 await register (
8178 user ,
8279 res . locals ,
@@ -90,10 +87,8 @@ export class AuthController {
9087 }
9188
9289 @Post ( "login" )
93- async login ( req : Request , res : Response ) {
94- const email = req . body . email ;
95- const password = req . body . password ;
96- joiValidate (
90+ @Middleware (
91+ validator (
9792 {
9893 email : Joi . string ( )
9994 . email ( )
@@ -102,39 +97,45 @@ export class AuthController {
10297 . min ( 6 )
10398 . required ( )
10499 } ,
105- { email, password }
106- ) ;
107- res . json ( await login ( email , password , res . locals ) ) ;
100+ "body"
101+ )
102+ )
103+ async login ( req : Request , res : Response ) {
104+ res . json ( await login ( req . body . email , req . body . password , res . locals ) ) ;
108105 }
109106
110107 @Post ( "2fa" )
111- async twoFactor ( req : Request , res : Response ) {
112- const code = req . body . code ;
113- const token = req . body . token ;
114- joiValidate (
108+ @Middleware (
109+ validator (
115110 {
116111 token : Joi . string ( ) . required ( ) ,
117112 code : Joi . number ( )
118113 . min ( 5 )
119114 . required ( )
120115 } ,
121- { code, token }
122- ) ;
116+ "body"
117+ )
118+ )
119+ async twoFactor ( req : Request , res : Response ) {
120+ const code = req . body . code ;
121+ const token = req . body . token ;
123122 res . json ( await login2FA ( code , token , res . locals ) ) ;
124123 }
125124
126125 @Post ( "verify-token" )
127- async postVerifyToken ( req : Request , res : Response ) {
128- const token =
129- req . body . token || ( req . get ( "Authorization" ) || "" ) . replace ( "Bearer " , "" ) ;
130- const subject = req . body . subject ;
131- joiValidate (
126+ @Middleware (
127+ validator (
132128 {
133129 token : Joi . string ( ) . required ( ) ,
134130 subject : Joi . string ( ) . required ( )
135131 } ,
136- { token, subject }
137- ) ;
132+ "body"
133+ )
134+ )
135+ async postVerifyToken ( req : Request , res : Response ) {
136+ const token =
137+ req . body . token || ( req . get ( "Authorization" ) || "" ) . replace ( "Bearer " , "" ) ;
138+ const subject = req . body . subject ;
138139 try {
139140 const data = await verifyToken ( token , subject ) ;
140141 res . json ( { verified : true , data } ) ;
@@ -153,16 +154,18 @@ export class AuthController {
153154 }
154155
155156 @Post ( "reset-password/request" )
156- async postResetPasswordRequest ( req : Request , res : Response ) {
157- const email = req . body . email ;
158- joiValidate (
157+ @Middleware (
158+ validator (
159159 {
160160 email : Joi . string ( )
161161 . email ( )
162162 . required ( )
163163 } ,
164- { email }
165- ) ;
164+ "body"
165+ )
166+ )
167+ async postResetPasswordRequest ( req : Request , res : Response ) {
168+ const email = req . body . email ;
166169 await sendPasswordReset ( email , res . locals ) ;
167170 res . json ( { queued : true } ) ;
168171 }
0 commit comments