forked from Risk-DAO/bad-debt-leaderboard
-
Notifications
You must be signed in to change notification settings - Fork 1
/
server.js
72 lines (60 loc) · 1.34 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
63
64
65
66
67
68
69
70
71
72
require('dotenv').config()
const express = require('express')
const app = express()
const port = process.env.SERVER_PORT
const {version} = require('./package.json')
const badDebtCache = require('./badDebtCache')
const cors = require('cors')
const everyHalfHour = 1000 * 60 * 30
app.use(cors())
app.get('/bad-debt', (req, res) => {
try{
const platform = req.query.platform
let bd
if(platform){
bd = badDebtCache.getBadDebtBy(platform)
} else {
bd = badDebtCache.getBadDebt()
}
if(!bd){
res.send(404)
}
res.json(bd)
} catch(e){
res.send(500)
}
})
app.get('/bad-debt-sub-jobs', (req, res) => {
try{
const { platform, market} = req.query
let bd
if(market){
bd = badDebtCache.getBadDebtSubJobsByMarket(market)
} else if(platform){
bd = badDebtCache.getBadDebtSubJobsBy(platform)
} else {
bd = badDebtCache.getBadDebtSubJobs()
}
if(!bd){
res.send(404)
}
res.json(bd)
} catch(e){
res.send(500)
}
})
app.get('/health', (req, res) => {
res.json({version})
})
app.get('/', (req, res) => {
res.json({version})
})
const startServer = async ()=> {
await badDebtCache.init()
setInterval(badDebtCache.init, everyHalfHour)
app.listen(port, () => {
console.log(`listening on port ${port}`)
})
}
startServer()
require('./background')