Skip to content

Commit 1a515ed

Browse files
authored
Merge pull request #3643 from clairep94/pr05/migrate_routes_folder
pr05 Typescript Migration #11: Migrate server/routes folder
2 parents 320245e + c69ec49 commit 1a515ed

15 files changed

+87
-52
lines changed

package-lock.json

Lines changed: 20 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@
138138
"@types/friendly-words": "^1.2.2",
139139
"@types/jest": "^29.5.14",
140140
"@types/node": "^16.18.126",
141+
"@types/passport": "^1.0.17",
141142
"@types/react": "^16.14.0",
142143
"@types/react-dom": "^16.9.25",
143144
"@types/react-router-dom": "^5.3.3",

server/routes/api.routes.js renamed to server/routes/api.routes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Router } from 'express';
22
import passport from 'passport';
33
import * as ProjectController from '../controllers/project.controller';
44

5-
const router = new Router();
5+
const router = Router();
66

77
router.get(
88
'/:username/sketches',
@@ -24,4 +24,5 @@ router.delete(
2424
ProjectController.deleteProject
2525
);
2626

27+
// eslint-disable-next-line import/no-default-export
2728
export default router;

server/routes/asset.routes.js renamed to server/routes/asset.routes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Router } from 'express';
22
import { getProjectAsset } from '../controllers/project.controller';
33
import { getFileContent } from '../controllers/file.controller';
44

5-
const router = new Router();
5+
const router = Router();
66

77
router.get('/:username/sketches/:project_id/*', getProjectAsset);
88
router.get('/full/:project_id/*', getProjectAsset);
@@ -14,4 +14,5 @@ router.get('/:username/embed/:project_id/*', getProjectAsset);
1414

1515
router.get('/sketches/:project_id/assets/*?', getFileContent);
1616

17+
// eslint-disable-next-line import/no-default-export
1718
export default router;

server/routes/aws.routes.js renamed to server/routes/aws.routes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Router } from 'express';
22
import * as AWSController from '../controllers/aws.controller';
33
import isAuthenticated from '../utils/isAuthenticated';
44

5-
const router = new Router();
5+
const router = Router();
66

77
router.post('/S3/sign', isAuthenticated, AWSController.signS3);
88
router.post(
@@ -17,4 +17,5 @@ router.delete(
1717
);
1818
router.get('/S3/objects', AWSController.listObjectsInS3ForUserRequestHandler);
1919

20+
// eslint-disable-next-line import/no-default-export
2021
export default router;

server/routes/collection.routes.js renamed to server/routes/collection.routes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Router } from 'express';
22
import * as CollectionController from '../controllers/collection.controller';
33
import isAuthenticated from '../utils/isAuthenticated';
44

5-
const router = new Router();
5+
const router = Router();
66

77
// List collections
88
router.get(
@@ -41,4 +41,5 @@ router.delete(
4141
CollectionController.removeProjectFromCollection
4242
);
4343

44+
// eslint-disable-next-line import/no-default-export
4445
export default router;

server/routes/embed.routes.js renamed to server/routes/embed.routes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Router } from 'express';
22

33
const editorUrl = process.env.EDITOR_URL;
44

5-
const router = new Router();
5+
const router = Router();
66

77
// CAT redirecting these temporarily to editor URLS to prevent phishing
88
// router.get('/:username/embed/:project_id', EmbedController.serveProject);
@@ -21,4 +21,5 @@ router.get('/embed/:project_id', (req, res) => {
2121
res.redirect(301, `${editorUrl}/full/${projectId}`);
2222
});
2323

24+
// eslint-disable-next-line import/no-default-export
2425
export default router;

server/routes/file.routes.js renamed to server/routes/file.routes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Router } from 'express';
22
import * as FileController from '../controllers/file.controller';
33
import isAuthenticated from '../utils/isAuthenticated';
44

5-
const router = new Router();
5+
const router = Router();
66

77
router.post(
88
'/projects/:project_id/files',
@@ -15,4 +15,5 @@ router.delete(
1515
FileController.deleteFile
1616
);
1717

18+
// eslint-disable-next-line import/no-default-export
1819
export default router;

server/routes/passport.routes.js

Lines changed: 0 additions & 35 deletions
This file was deleted.

server/routes/passport.routes.ts

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import { Router, Request, Response, NextFunction } from 'express';
2+
import passport from 'passport';
3+
4+
const router = Router();
5+
6+
const authenticateOAuth = (service: string) => (
7+
req: Request,
8+
res: Response,
9+
next: NextFunction
10+
) => {
11+
passport.authenticate(
12+
service,
13+
{ failureRedirect: '/login' },
14+
(err: any, user: any) => {
15+
if (err) {
16+
// use query string param to show error;
17+
res.redirect(`/account?error=${service}`);
18+
return;
19+
}
20+
21+
if (!user) {
22+
res.redirect(`/account?error=${service}NoUser`);
23+
return;
24+
}
25+
26+
req.logIn(user, (loginErr) => {
27+
if (loginErr) {
28+
next(loginErr);
29+
return;
30+
}
31+
res.redirect('/');
32+
});
33+
}
34+
)(req, res, next);
35+
};
36+
37+
router.get('/auth/github', passport.authenticate('github'));
38+
router.get('/auth/github/callback', authenticateOAuth('github'));
39+
40+
router.get('/auth/google', passport.authenticate('google'));
41+
router.get('/auth/google/callback', authenticateOAuth('google'));
42+
43+
// eslint-disable-next-line import/no-default-export
44+
export default router;

0 commit comments

Comments
 (0)