forked from disease-sh/API
-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.js
62 lines (53 loc) · 1.66 KB
/
server.js
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
const express = require('express');
const cors = require('cors');
const swaggerUi = require('swagger-ui-express');
const app = express();
const { redis, config, scraper } = require('./routes/instances');
const { keys } = config;
const execAll = async () => {
await Promise.all([
scraper.getWorldometerPage(keys, redis),
scraper.getStates(keys, redis),
scraper.jhuLocations.jhudataV2(keys, redis),
scraper.historical.historicalV2(keys, redis)
]);
app.emit('scrapper_finished');
};
execAll();
setInterval(execAll, config.interval);
app.use(cors());
app.get('/', async (request, response) => response.redirect('https://github.com/novelcovid/api'));
const listener = app.listen(config.port, () =>
console.log(`Your app is listening on port ${listener.address().port}`)
);
app.get('/invite', async (req, res) =>
res.redirect('https://discordapp.com/oauth2/authorize?client_id=685268214435020809&scope=bot&permissions=537250880')
);
app.get('/support', async (req, res) => res.redirect('https://discord.gg/EvbMshU'));
app.use('/public', express.static('assets'));
app.use('/docs',
swaggerUi.serve,
swaggerUi.setup(null, {
explorer: true,
customSiteTitle: 'NovelCOVID 19 API',
customfavIcon: '/public/virus.png',
customCssUrl: '/public/apidocs/custom.css',
swaggerOptions: {
urls: [
{
name: 'version 2.0.0',
url: '/public/apidocs/swagger_v2.json'
},
{
name: 'version 1.0.0',
url: '/public/apidocs/swagger_v1.json'
}
]
}
})
);
app.use(require('./routes/api_worldometers'));
app.use(require('./routes/api_historical'));
app.use(require('./routes/api_jhucsse'));
app.use(require('./routes/api_deprecated'));
module.exports = app;