Skip to content

Commit f459e2b

Browse files
authored
feat: add canvas image generation for use with Codam's entrance screens (#6)
1 parent 81a01ae commit f459e2b

File tree

11 files changed

+814
-46
lines changed

11 files changed

+814
-46
lines changed

package-lock.json

Lines changed: 346 additions & 20 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
@@ -19,6 +19,7 @@
1919
"@prisma/client": "^5.20.0",
2020
"@quixo3/prisma-session-store": "^3.1.13",
2121
"body-parser": "^1.20.3",
22+
"canvas": "^3.2.0",
2223
"dotenv": "^16.4.5",
2324
"express": "^4.19.2",
2425
"express-session": "^1.18.0",

src/handlers/middleware.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ const checkIfAuthenticated = function(req: Request, res: Response, next: NextFun
1414
if (req.path.startsWith('/hooks/')) {
1515
return next(); // Don't require authentication for webhooks
1616
}
17+
if (req.path.startsWith('/static/')) {
18+
return next(); // Don't require authentication for static resources
19+
}
20+
if (req.path.startsWith('/canvas')) {
21+
return next(); // Don't require authentication for the canvas generated leaderboard
22+
}
1723
if (req.isAuthenticated()) {
1824
return next();
1925
}

src/main.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,14 @@ import { setupPassport, usePassport } from './handlers/authentication';
2323
import { setupNunjucksFilters } from './handlers/filters';
2424
import { setupExpressMiddleware } from './handlers/middleware';
2525
import { setupLoginRoutes } from './routes/login';
26-
import { setupQuizRoutes } from './routes/quiz';
27-
import { setupAdminRoutes } from './routes/admin';
2826
import { setupHomeRoutes } from './routes/home';
29-
import { setupWebhookRoutes } from './routes/hooks';
3027
import { setupProfileRoutes } from './routes/profile';
31-
import { setupChartRoutes } from './routes/charts';
3228
import { setupResultsRoutes } from './routes/results';
29+
import { setupChartRoutes } from './routes/charts';
30+
import { setupQuizRoutes } from './routes/quiz';
31+
import { setupAdminRoutes } from './routes/admin';
32+
import { setupWebhookRoutes } from './routes/hooks';
33+
import { setupCanvasRoutes } from './routes/canvas';
3334

3435
export let api: Fast42 | null = null;
3536

@@ -101,6 +102,7 @@ const main = async () => {
101102
setupQuizRoutes(app, prisma);
102103
setupAdminRoutes(app, prisma);
103104
setupWebhookRoutes(app, prisma);
105+
setupCanvasRoutes(app, prisma);
104106

105107
// Start the Express server
106108
app.listen(4000, async () => {

0 commit comments

Comments
 (0)