-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathserve.js
38 lines (30 loc) · 1.16 KB
/
serve.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
import * as http from 'http';
import * as url from 'url';
import { cleanUp } from './cleanup.js';
const port = process.env.PORT || 8080;
const server = http.createServer(async (req, res) => {
if(req.method === 'POST') {
const parsedURL = url.parse(req.url, true);
const entity = parsedURL.query.entity;
if(!entity) {
const errMsg = '"entity" URL parameter is required';
console.error(errMsg);
res.writeHead(500);
return res.end(errMsg);
}
const attribute = parsedURL.query.attribute;
if(!attribute) {
const errMsg = '"attribute" URL parameter is required';
console.error(errMsg);
res.writeHead(500);
return res.end(errMsg);
}
const days = parseInt(parsedURL.query.days);
const limit = parseInt(parsedURL.query.limit);
await cleanUp(entity, attribute, days, limit);
return res.end('OK');
} else {
return res.end('Send a POST request to delete entities. "entity" and "attribute" are required URL parameters, example: ?entity=Event&attribute=createdOn');
}
});
server.listen(port, () => console.info(`datastore-cleaner is listening on port ${port}`));