Repository navigation
Expand file tree
/
Copy pathmalekaiAPI.js
More file actions
80 lines (70 loc) · 2 KB
/
Copy pathmalekaiAPI.js
File metadata and controls
80 lines (70 loc) · 2 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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//External Libraries
const express = require('express');
const helmet = require('helmet');
const cors = require('cors');
const compression = require('compression');
//Express Handler
const api = express();
//Express Configuration
require('dotenv').config();
const port = 7077; //api.malekai.org addy
const ip = '0.0.0.0';
api.listen(port, ip);
api.set('trust proxy', 1);
console.log(`Starting API in the ${process.env.NODE_ENV || 'development(?)'} environment at ${ip}:${port}!`);
//Express Security Configuration
api.use(cors({ origin: '*', methods: 'GET,POST' }));
api.use(compression());
api.use(helmet());
api.use(helmet.referrerPolicy({
policy: 'no-referrer-when-downgrade'
}));
api.use(helmet.contentSecurityPolicy({
directives: {
defaultSrc: ["'self'"]
}
}))
// Sessions
const r = require('rethinkdbdash')({
host: 'localhost',
db: 'crowfallData',
});
const session = require('express-session');
const RDBStore = require('session-rethinkdb')(session);
const sessionStore = new RDBStore(r, {
browserSessionsMaxAge: 60000,
clearInterval: 60000
});
api.use(session({
secret: 'malekai',
cookie: {
maxAge: 600000
},
store: sessionStore,
resave: true,
saveUninitialized: false
}));
//load Malekai routes
let home = require('./routes/home');
let races = require('./routes/races');
let classes = require('./routes/classes');
let disciplines = require('./routes/disciplines');
let powers = require('./routes/powers');
let talents = require('./routes/talents');
let news = require('./routes/news');
let devtracker = require('./routes/devtracker');
let videos = require('./routes/videos');
let changelog = require('./routes/changelog');
let login = require('./routes/login');
//use Malekai routes
api.use('/', home);
api.use('/races', races);
api.use('/classes', classes);
api.use('/disciplines', disciplines);
api.use('/powers', powers);
api.use('/talents', talents);
api.use('/news', news);
api.use('/devtracker', devtracker);
api.use('/videos', videos);
api.use('/changelog', changelog);
api.use('/login', login);