forked from humancto/CollabCode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
57 lines (48 loc) · 1.77 KB
/
Copy pathserver.js
File metadata and controls
57 lines (48 loc) · 1.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
require('dotenv').config();
const path = require('path');
const express = require('express');
const cookieParser = require('cookie-parser');
const app = express();
const port = process.env.PORT || 3000;
app.set('trust proxy', 1);
app.use(express.json({ limit: '256kb' }));
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
const routes = {
'/api/auth/login': () => require('./api/auth/login'),
'/api/auth/verify': () => require('./api/auth/verify'),
'/api/auth/logout': () => require('./api/auth/logout'),
'/api/auth/reset-password': () => require('./api/auth/reset-password'),
'/api/auth/update-password': () => require('./api/auth/update-password'),
'/api/sessions/create': () => require('./api/sessions/create'),
'/api/firebase-config.js': () => require('./api/firebase-config'),
'/api/code/execute': () => require('./api/code/execute'),
'/api/interview/templates': () => require('./api/interview/templates'),
'/api/admins': () => require('./api/admins'),
'/api/activity/save': () => require('./api/activity/save'),
'/api/slack/send': () => require('./api/slack/send'),
'/api/check-duplicate-login': () => require('./api/check-duplicate-login'),
'/api/track-session': () => require('./api/track-session')
};
for (const [route, getHandler] of Object.entries(routes)) {
app.all(route, (req, res, next) => {
try {
return getHandler()(req, res);
} catch (error) {
return next(error);
}
});
}
app.get('/healthz', (_req, res) => {
res.json({ ok: true });
});
const staticRoot = process.env.VERCEL
? path.join(__dirname, 'public')
: __dirname;
app.use(express.static(staticRoot, {
index: 'app.html',
dotfiles: 'deny'
}));
app.listen(port, '0.0.0.0', () => {
console.log(`OpenCollab listening on port ${port}`);
});