implemented download tokens

This commit is contained in:
Danny Coates 2020-07-27 11:18:52 -07:00
parent 87d46f7ef5
commit 81e9d81dab
No known key found for this signature in database
GPG key ID: 4C442633C62E00CB
26 changed files with 271 additions and 126 deletions

25
server/routes/done.js Normal file
View file

@ -0,0 +1,25 @@
const storage = require('../storage');
const { statDownloadEvent } = require('../amplitude');
module.exports = async function(req, res) {
try {
const id = req.params.id;
const meta = req.meta;
const ttl = await storage.ttl(id);
statDownloadEvent({
id,
ip: req.ip,
owner: meta.owner,
download_count: meta.dl,
ttl,
agent: req.ua.browser.name || req.ua.ua.substring(0, 6)
});
await storage.incrementField(id, 'dl');
if (meta.dlToken >= meta.dlimit) {
await storage.kill(id);
}
res.sendStatus(200);
} catch (e) {
res.sendStatus(404);
}
};