@@ -2,6 +2,7 @@ import { WebSocketExpress, Router, type JWTPayload } from 'websocket-express';
22import { type RetroAuthService } from '../services/RetroAuthService' ;
33import { type UserAuthService } from '../services/UserAuthService' ;
44import { type RetroService } from '../services/RetroService' ;
5+ import { safe } from '../helpers/routeHelpers' ;
56
67const JSON_BODY = WebSocketExpress . json ( { limit : 4 * 1024 } ) ;
78
@@ -18,41 +19,49 @@ export class ApiAuthRouter extends Router {
1819 ( token ) : JWTPayload | null => userAuthService . readAndVerifyToken ( token ) ,
1920 ) ;
2021
21- this . get ( '/tokens/:retroId/user' , userAuthMiddleware , async ( req , res ) => {
22- const userId = WebSocketExpress . getAuthData ( res ) . sub ! ;
23- const { retroId } = req . params ;
24-
25- if (
26- ! retroId ||
27- ! ( await retroService . isRetroOwnedByUser ( retroId , userId ) )
28- ) {
29- res . status ( 403 ) . json ( { error : 'not retro owner' } ) ;
30- return ;
31- }
32-
33- const retroToken = await retroAuthService . grantOwnerToken ( retroId ) ;
34- if ( ! retroToken ) {
35- res . status ( 500 ) . json ( { error : 'retro not found' } ) ;
36- return ;
37- }
38-
39- res . status ( 200 ) . json ( { retroToken } ) ;
40- } ) ;
41-
42- this . post ( '/tokens/:retroId' , JSON_BODY , async ( req , res ) => {
43- const { retroId } = req . params ;
44- const { password } = req . body ;
45-
46- const retroToken = await retroAuthService . grantForPassword (
47- retroId ,
48- password ,
49- ) ;
50- if ( ! retroToken ) {
51- res . status ( 400 ) . json ( { error : 'incorrect password' } ) ;
52- return ;
53- }
54-
55- res . status ( 200 ) . json ( { retroToken } ) ;
56- } ) ;
22+ this . get (
23+ '/tokens/:retroId/user' ,
24+ userAuthMiddleware ,
25+ safe < { retroId : string } > ( async ( req , res ) => {
26+ const userId = WebSocketExpress . getAuthData ( res ) . sub ! ;
27+ const { retroId } = req . params ;
28+
29+ if (
30+ ! retroId ||
31+ ! ( await retroService . isRetroOwnedByUser ( retroId , userId ) )
32+ ) {
33+ res . status ( 403 ) . json ( { error : 'not retro owner' } ) ;
34+ return ;
35+ }
36+
37+ const retroToken = await retroAuthService . grantOwnerToken ( retroId ) ;
38+ if ( ! retroToken ) {
39+ res . status ( 500 ) . json ( { error : 'retro not found' } ) ;
40+ return ;
41+ }
42+
43+ res . status ( 200 ) . json ( { retroToken } ) ;
44+ } ) ,
45+ ) ;
46+
47+ this . post (
48+ '/tokens/:retroId' ,
49+ JSON_BODY ,
50+ safe < { retroId : string } > ( async ( req , res ) => {
51+ const { retroId } = req . params ;
52+ const { password } = req . body ;
53+
54+ const retroToken = await retroAuthService . grantForPassword (
55+ retroId ,
56+ password ,
57+ ) ;
58+ if ( ! retroToken ) {
59+ res . status ( 400 ) . json ( { error : 'incorrect password' } ) ;
60+ return ;
61+ }
62+
63+ res . status ( 200 ) . json ( { retroToken } ) ;
64+ } ) ,
65+ ) ;
5766 }
5867}
0 commit comments