From aa4a1c2a576e4e4fff38b6faec882db1716d1a31 Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Fri, 21 Feb 2020 21:53:51 +0100 Subject: [PATCH] Registed route watch-link, by title & year Fetch watch link for plex item matching query parameters title and year. --- seasoned_api/src/webserver/app.js | 2 ++ .../controllers/plex/watchDirectLink.js | 27 +++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 seasoned_api/src/webserver/controllers/plex/watchDirectLink.js diff --git a/seasoned_api/src/webserver/app.js b/seasoned_api/src/webserver/app.js index bbe61c1..2eee898 100644 --- a/seasoned_api/src/webserver/app.js +++ b/seasoned_api/src/webserver/app.js @@ -113,6 +113,8 @@ router.get('/v1/plex/request/:mediaId', require('./controllers/plex/readRequest. router.post('/v1/plex/request/:mediaId', require('./controllers/plex/submitRequest.js')); router.post('/v1/plex/hook', require('./controllers/plex/hookDump.js')); +router.get('/v1/plex/watch-link', mustBeAuthenticated, require('./controllers/plex/watchDirectLink.js')); + /** * Requests */ diff --git a/seasoned_api/src/webserver/controllers/plex/watchDirectLink.js b/seasoned_api/src/webserver/controllers/plex/watchDirectLink.js new file mode 100644 index 0000000..0020ba7 --- /dev/null +++ b/seasoned_api/src/webserver/controllers/plex/watchDirectLink.js @@ -0,0 +1,27 @@ +const configuration = require('src/config/configuration').getInstance(); +const Plex = require('src/plex/plex'); +const plex = new Plex(configuration.get('plex', 'ip')); + +/** + * Controller: Search plex for movies, shows and episodes by query + * @param {Request} req http request variable + * @param {Response} res + * @returns {Callback} + */ + +function watchDirectLink (req, res) { + const { title, year } = req.query; + + plex.getDirectLinkByTitleAndYear(title, year) + .then(plexDirectLink => { + if (plexDirectLink == false) + res.status(404).send({ success: true, link: null }) + else + res.status(200).send({ success: true, link: plexDirectLink }) + }) + .catch(error => { + res.status(500).send({ success: false, message: error.message }); + }); +} + +module.exports = watchDirectLink;