Skip to content
This repository was archived by the owner on Sep 24, 2024. It is now read-only.

Commit 55103f5

Browse files
committed
reorganize cdn and stage terms documents
1 parent 50fcfc8 commit 55103f5

File tree

5 files changed

+67
-2
lines changed

5 files changed

+67
-2
lines changed

web/cdn/routes/cdn.js web/cdn/routes/cdn/discord.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const router = require('express').Router();
22

33
router
4-
.get('/discord', (req, res) => res.redirect('https://discord.gg/FgQvDW8jtr'))
4+
.get('/', (req, res) => res.redirect('https://discord.gg/FgQvDW8jtr'))
55
.use((req, res, next) => {
66
const { path } = req;
77
const methodUsed = req.method.toUpperCase();

web/cdn/routes/cdn/license.js

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
const router = require('express').Router();
2+
const fs = require('fs');
3+
4+
router
5+
.get('/terms/:id', (req, res) => {
6+
const { id } = req.params;
7+
if (!fs.existsSync(`${process.cwd()}/assets/documents/legal/terms/${id}.txt`))
8+
return res.status(404).render(
9+
"misc/404.pug",
10+
req.getErrPage(404, { id }),
11+
);
12+
res.sendFile(`${process.cwd()}/assets/documents/legal/terms/${id}.txt`);
13+
})
14+
.use((req, res, next) => {
15+
const { path } = req;
16+
const methodUsed = req.method.toUpperCase();
17+
let allowedMethods = router.stack.filter(routerObj => routerObj.route && routerObj.route.path === path);
18+
if (allowedMethods.length === 0) return next();
19+
allowedMethods.map(routerObj => routerObj.route.stack[0]);
20+
allowedMethods = { ...allowedMethods[0] };
21+
allowedMethods = allowedMethods.route.methods;
22+
if (req.method === 'OPTIONS')
23+
return res.setHeader('Allow', Object.keys(allowedMethods)
24+
.map(verb => verb.toUpperCase()).join(', '))
25+
.setHeader('Access-Control-Allow-Methods', Object.keys(allowedMethods).map(verb => verb.toUpperCase()).join(', '))
26+
.status(204)
27+
.send();
28+
if (allowedMethods[methodUsed]) return next();
29+
return res.status(405).render(
30+
"misc/405.pug",
31+
req.getErrPage(405, { path, allowedMethods, methodUsed }),
32+
);
33+
});
34+
35+
module.exports = router;

web/cdn/routes/cdn/router.js

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
const router = require('express').Router();
2+
3+
const discord = require('./discord');
4+
const license = require('./license');
5+
6+
router
7+
.use('/discord', discord)
8+
.use('/license', license)
9+
.use((req, res, next) => {
10+
const { path } = req;
11+
const methodUsed = req.method.toUpperCase();
12+
let allowedMethods = router.stack.filter(routerObj => routerObj.route && routerObj.route.path === path);
13+
if (allowedMethods.length === 0) return next();
14+
allowedMethods.map(routerObj => routerObj.route.stack[0]);
15+
allowedMethods = { ...allowedMethods[0] };
16+
allowedMethods = allowedMethods.route.methods;
17+
if (req.method === 'OPTIONS')
18+
return res.setHeader('Allow', Object.keys(allowedMethods)
19+
.map(verb => verb.toUpperCase()).join(', '))
20+
.setHeader('Access-Control-Allow-Methods', Object.keys(allowedMethods).map(verb => verb.toUpperCase()).join(', '))
21+
.status(204)
22+
.send();
23+
if (allowedMethods[methodUsed]) return next();
24+
return res.status(405).render(
25+
"misc/405.pug",
26+
req.getErrPage(405, { path, allowedMethods, methodUsed }),
27+
);
28+
});
29+
30+
module.exports = router;

web/cdn/routes/router.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const router = require('express').Router();
22
require('dotenv').config();
33

4-
const cdn = require('./cdn');
4+
const cdn = require('./cdn/router');
55
const assets = require('./assets/router');
66

77
router

0 commit comments

Comments
 (0)