Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
3720988
routes/user: update to ts, no-verify
clairep94 Sep 8, 2025
eb76d06
routes/user: remove new from Router init
clairep94 Sep 8, 2025
326935b
routes/api: update to ts, no-verify
clairep94 Sep 8, 2025
267f0de
routes/api: remove new, add passport types
clairep94 Sep 8, 2025
13ff418
routes/asset: update to ts, no-verify
clairep94 Sep 8, 2025
17ca551
routes/asset: remove new for router init, disable eslint no-default-e…
clairep94 Sep 8, 2025
eddbb76
routes/aws: update to ts, no-verify
clairep94 Sep 8, 2025
df2cee5
routes/aws: remove new for router init, disable eslint no-default-exp…
clairep94 Sep 8, 2025
7b6a8dc
routes/collection: update to ts, no-verify
clairep94 Sep 8, 2025
c1ab80a
routes/collection: remove new for router init, disable eslint no-defa…
clairep94 Sep 8, 2025
52bcbad
routes/embed: update to ts, no-verify
clairep94 Sep 8, 2025
3504485
routes/embed: remove new for router init, disable eslint no-default-e…
clairep94 Sep 8, 2025
d375062
routes/files: update to ts, no-verify
clairep94 Sep 8, 2025
f62e973
routes/files: remove new for router init, disable eslint no-default-e…
clairep94 Sep 8, 2025
fed552d
routes/session: migrate to ts, no-verify
clairep94 Sep 15, 2025
c737eac
routes/session: remove new for router init, disable eslint no-default…
clairep94 Sep 15, 2025
31710a2
routes/project: migrate to ts, no-verify
clairep94 Sep 15, 2025
b7658de
routes/project: remove new for router init, disable eslint no-default…
clairep94 Sep 15, 2025
da9ddd0
routes/redirectEmbed: migrate to ts, no-verify
clairep94 Sep 15, 2025
e036db0
routes/redirectEmbed: remove new for router init, disable eslint no-d…
clairep94 Sep 15, 2025
4fc47e4
routes/server: migrate to ts, no-verify
clairep94 Sep 15, 2025
41134a2
routes/server: remove new for router init, disable eslint no-default-…
clairep94 Sep 15, 2025
2b247f7
routes/passport: migrate to ts, no-verify
clairep94 Sep 15, 2025
2a189ee
routes/passport: remove new for router init, disable eslint no-defaul…
clairep94 Sep 15, 2025
a18524c
routes/passport: add types from express and passport
clairep94 Sep 15, 2025
e1f59df
routes/server: revert back to js for separate pr migration
clairep94 Sep 15, 2025
793e95c
patch fix to remove type errors for routes/passport
clairep94 Sep 15, 2025
d7ecaa6
Merge branch 'develop' into pr05/migrate_routes_folder
khanniie Sep 21, 2025
0847612
address extraneous export
clairep94 Sep 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@
"@types/friendly-words": "^1.2.2",
"@types/jest": "^29.5.14",
"@types/node": "^16.18.126",
"@types/passport": "^1.0.17",
"@types/react": "^16.14.0",
"@types/react-dom": "^16.9.25",
"@types/react-router-dom": "^5.3.3",
Expand Down
3 changes: 2 additions & 1 deletion server/routes/api.routes.js → server/routes/api.routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Router } from 'express';
import passport from 'passport';
import * as ProjectController from '../controllers/project.controller';

const router = new Router();
const router = Router();

router.get(
'/:username/sketches',
Expand All @@ -24,4 +24,5 @@ router.delete(
ProjectController.deleteProject
);

// eslint-disable-next-line import/no-default-export
export default router;
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Router } from 'express';
import { getProjectAsset } from '../controllers/project.controller';
import { getFileContent } from '../controllers/file.controller';

const router = new Router();
const router = Router();

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

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

// eslint-disable-next-line import/no-default-export
export default router;
3 changes: 2 additions & 1 deletion server/routes/aws.routes.js → server/routes/aws.routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Router } from 'express';
import * as AWSController from '../controllers/aws.controller';
import isAuthenticated from '../utils/isAuthenticated';

const router = new Router();
const router = Router();

router.post('/S3/sign', isAuthenticated, AWSController.signS3);
router.post(
Expand All @@ -17,4 +17,5 @@ router.delete(
);
router.get('/S3/objects', AWSController.listObjectsInS3ForUserRequestHandler);

// eslint-disable-next-line import/no-default-export
export default router;
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Router } from 'express';
import * as CollectionController from '../controllers/collection.controller';
import isAuthenticated from '../utils/isAuthenticated';

const router = new Router();
const router = Router();

// List collections
router.get(
Expand Down Expand Up @@ -41,4 +41,5 @@ router.delete(
CollectionController.removeProjectFromCollection
);

// eslint-disable-next-line import/no-default-export
export default router;
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Router } from 'express';

const editorUrl = process.env.EDITOR_URL;

const router = new Router();
const router = Router();

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

// eslint-disable-next-line import/no-default-export
export default router;
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Router } from 'express';
import * as FileController from '../controllers/file.controller';
import isAuthenticated from '../utils/isAuthenticated';

const router = new Router();
const router = Router();

router.post(
'/projects/:project_id/files',
Expand All @@ -15,4 +15,5 @@ router.delete(
FileController.deleteFile
);

// eslint-disable-next-line import/no-default-export
export default router;
35 changes: 0 additions & 35 deletions server/routes/passport.routes.js

This file was deleted.

44 changes: 44 additions & 0 deletions server/routes/passport.routes.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import { Router, Request, Response, NextFunction } from 'express';
import passport from 'passport';

const router = Router();

const authenticateOAuth = (service: string) => (
req: Request,
res: Response,
next: NextFunction
) => {
passport.authenticate(
service,
{ failureRedirect: '/login' },
(err: any, user: any) => {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

small nit but are there better types for these other than any? something from passport's types?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried to find an error and user type from the passport @types, but I think they declare User as {}, and use err: any

I think when I migrate the User model, I can import it and use it, but error might just stay as any

if (err) {
// use query string param to show error;
res.redirect(`/account?error=${service}`);
return;
}

if (!user) {
res.redirect(`/account?error=${service}NoUser`);
return;
}

req.logIn(user, (loginErr) => {
if (loginErr) {
next(loginErr);
return;
}
res.redirect('/');
});
}
)(req, res, next);
};

router.get('/auth/github', passport.authenticate('github'));
router.get('/auth/github/callback', authenticateOAuth('github'));

router.get('/auth/google', passport.authenticate('google'));
router.get('/auth/google/callback', authenticateOAuth('google'));

// eslint-disable-next-line import/no-default-export
export default router;
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Router } from 'express';
import * as ProjectController from '../controllers/project.controller';
import isAuthenticated from '../utils/isAuthenticated';

const router = new Router();
const router = Router();

router.post('/projects', isAuthenticated, ProjectController.createProject);

Expand All @@ -28,4 +28,5 @@ router.get('/projects/:project_id/zip', ProjectController.downloadProjectAsZip);

router.patch('/project/visibility', ProjectController.changeProjectVisibility);

// eslint-disable-next-line import/no-default-export
export default router;
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Router } from 'express';

const router = new Router();
const router = Router();

router.get('/:username/embed/:project_id', (req, res) => {
const { username, project_id: projectId } = req.params;
Expand All @@ -23,4 +23,5 @@ router.get('/embed/:project_id', (req, res) => {
res.redirect(301, `/full/${projectId}`);
});

// eslint-disable-next-line import/no-default-export
export default router;
9 changes: 2 additions & 7 deletions server/routes/server.routes.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,7 @@ import {
} from '../controllers/project.controller';
import { collectionForUserExists } from '../controllers/collection.controller';

const router = new Router();

// const fallback404 = (res) => (exists) =>
// exists ? res.send(renderIndex()) : get404Sketch((html) => res.send(html));

// this is intended to be a temporary file
// until i figure out isomorphic rendering
const router = Router();

router.get('/', (req, res) => {
res.send(renderIndex());
Expand Down Expand Up @@ -159,4 +153,5 @@ router.get('/code-of-conduct', (req, res) => {
res.send(renderIndex());
});

// eslint-disable-next-line import/no-default-export
export default router;
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import { Router } from 'express';
import * as SessionController from '../controllers/session.controller';

const router = new Router();
const router = Router();

router.post('/login', SessionController.createSession);

router.get('/session', SessionController.getSession);

router.get('/logout', SessionController.destroySession);

// eslint-disable-next-line import/no-default-export
export default router;
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Router } from 'express';
import * as UserController from '../controllers/user.controller';
import isAuthenticated from '../utils/isAuthenticated';

const router = new Router();
const router = Router();

router.post('/signup', UserController.createUser);

Expand Down Expand Up @@ -39,4 +39,5 @@ router.get('/verify', UserController.verifyEmail);
router.delete('/auth/github', UserController.unlinkGithub);
router.delete('/auth/google', UserController.unlinkGoogle);

// eslint-disable-next-line import/no-default-export
export default router;
Loading