'use static'; const router = require('express').Router(); const {Torrent} = require('>/models'); router.get('/', async function(req, res, next){ try{ res.json({results: await Torrent.findAll({ where:{added_by: req.query.username || req.user.username}, limit: req.query.limit, offset: req.query.offset, order: [ ['createdAt', 'DESC'], ], })}); }catch(error){ next(error); } }); router.post("/", async function(req, res, next){ try{ res.json(await Torrent.create({...req.body, added_by: req.user.username})) }catch(error){ next(error); } }); router.post("/:hashString", async function(req, res, next){ try{ res.json(await Torrent.migrate(req.params.hashString, req.user.username)) }catch(error){ next(error); } }); router.get('/server', async function(req, res, next){ try{ res.json(await Torrent.trClient.sessionStats()) }catch(error){ next(error); } }); router.get("/:hashString", async function(req, res, next){ try{ let torrent = await Torrent.findByPk(req.params.hashString); if('latest' in req.query){ torrent = await torrent.getTorrentData(); } res.json({result: torrent}); }catch(error){ next(error); } }); router.delete("/:hashString", async function(req, res, next){ try{ let torrent = await Torrent.findByPk(req.params.hashString); res.json({result: torrent, activity: await torrent.destroy()}); }catch(error){ next(error); } }); router.post("/:hashString/stop", async function(req, res, next){ try{ let torrent = await Torrent.findByPk(req.params.hashString); res.json({result: torrent, activity: await torrent.stop()}); }catch(error){ next(error); } }); router.post("/:hashString/start", async function(req, res, next){ try{ let torrent = await Torrent.findByPk(req.params.hashString); res.json({result: torrent, activity: await torrent.start()}); }catch(error){ next(error); } }); module.exports = router;