This repository has no description
1import { Router } from 'express';
2import { InitiateOAuthSignInController } from '../controllers/InitiateOAuthSignInController';
3import { CompleteOAuthSignInController } from '../controllers/CompleteOAuthSignInController';
4import { LoginWithAppPasswordController } from '../controllers/LoginWithAppPasswordController';
5import { RefreshAccessTokenController } from '../controllers/RefreshAccessTokenController';
6import { AuthMiddleware } from '../../../../../shared/infrastructure/http/middleware/AuthMiddleware';
7import { GetMyProfileController } from 'src/modules/cards/infrastructure/http/controllers/GetMyProfileController';
8import { LogoutController } from '../controllers/LogoutController';
9import { GenerateExtensionTokensController } from '../controllers/GenerateExtensionTokensController';
10
11export const createUserRoutes = (
12 router: Router,
13 authMiddleware: AuthMiddleware,
14 initiateOAuthSignInController: InitiateOAuthSignInController,
15 completeOAuthSignInController: CompleteOAuthSignInController,
16 loginWithAppPasswordController: LoginWithAppPasswordController,
17 logoutController: LogoutController,
18 getMyProfileController: GetMyProfileController,
19 refreshAccessTokenController: RefreshAccessTokenController,
20 generateExtensionTokensController: GenerateExtensionTokensController,
21) => {
22 // Public routes
23 router.get('/login', (req, res) =>
24 initiateOAuthSignInController.execute(req, res),
25 );
26 router.get('/oauth/callback', (req, res) =>
27 completeOAuthSignInController.execute(req, res),
28 );
29 router.post('/login/app-password', (req, res) =>
30 loginWithAppPasswordController.execute(req, res),
31 );
32 router.post('/logout', (req, res) => logoutController.execute(req, res));
33 router.post('/oauth/refresh', (req, res) =>
34 refreshAccessTokenController.execute(req, res),
35 );
36
37 // Protected routes
38 router.get('/me', authMiddleware.ensureAuthenticated(), (req, res) =>
39 getMyProfileController.execute(req, res),
40 );
41 router.get(
42 '/extension/tokens',
43 authMiddleware.ensureAuthenticated(),
44 (req, res) => generateExtensionTokensController.execute(req, res),
45 );
46
47 return router;
48};