From 069d984c397ff43e32f3ef445811131ed98b79af Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Sun, 4 Jun 2017 00:10:35 +0200 Subject: [PATCH 1/4] Added for handling input of movie request, but still need to work on the way the python script is run. --- src/plex/requestRepository.js | 44 +++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/src/plex/requestRepository.js b/src/plex/requestRepository.js index 0cc27dd..cd8372f 100644 --- a/src/plex/requestRepository.js +++ b/src/plex/requestRepository.js @@ -7,9 +7,23 @@ const TMDB = require('src/tmdb/tmdb'); const tmdb = new TMDB(configuration.get('tmdb', 'apiKey')); var Promise = require('bluebird'); var rp = require('request-promise'); +var pythonShell = require('python-shell'); + +const establishedDatabase = require('src/database/database'); class RequestRepository { + constructor(database) { + this.database = database || establishedDatabase; + this.queries = { + // 'read': 'SELECT * FROM stray_eps WHERE id = ?', + // 'readAll': 'SELECT id, name, season, episode, verified FROM stray_eps', + // 'readAllFiltered': 'SELECT id, name, season, episode, verified FROM stray_eps WHERE verified = ', + 'checkRequested': 'SELECT id, title FROM request WHERE id = ?', + 'request': 'UPDATE request SET matched = 1 WHERE id = ?', + }; + } + searchRequest(query, page, type) { return Promise.resolve() .then(() => tmdb.search(query, page, type)) @@ -55,6 +69,36 @@ class RequestRepository { }); } + submitRequest(movieId) { + console.log(movieId); + return Promise.resolve() + .then(() => { + pythonShell.run('moveSeasoned.py', function (err, results) { + // if (err) throw err; + // TODO Add error handling!! StrayRepository.ERROR + // results is an array consisting of messages collected during execution + console.log('results: %j', results); + }) + }) + .catch((error) => { + console.log(error); + return error; + }) + + // return this.database.get(this.queries.checkRequested, movieId).then((row) => { + // // TODO send back the name, not ID + // assert.notEqual(row, undefined, `Stray '${movieId}' already verified.`); + + // var options = { + // args: [movieId] + // } + + + + // return this.database.run(this.queries.verify, movieId); + // }) + } + } module.exports = RequestRepository; \ No newline at end of file From 6496988e51bbcb5d6561cb9d5b9a8c757aa65a2f Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Sun, 4 Jun 2017 00:12:38 +0200 Subject: [PATCH 2/4] Changed variable names to better reflect their purpose --- src/webserver/controllers/plex/readRequest.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/webserver/controllers/plex/readRequest.js b/src/webserver/controllers/plex/readRequest.js index 0524a2f..32f1b05 100644 --- a/src/webserver/controllers/plex/readRequest.js +++ b/src/webserver/controllers/plex/readRequest.js @@ -8,9 +8,10 @@ const requestRepository = new RequestRepository(); * @returns {Callback} */ function readRequestController(req, res) { - const mediaId = req.params.mediaId; + const requestId = req.params.requestId; const { type } = req.query; - requestRepository.lookup(mediaId, type) + + requestRepository.lookup(requestId, type) .then((movies) => { res.send(movies); }).catch((error) => { From 703e3d37858e381ab8d371cf88a6c8102439dc65 Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Sun, 4 Jun 2017 00:13:02 +0200 Subject: [PATCH 3/4] Added a api endpoint for submitting a movie request. --- src/webserver/app.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/webserver/app.js b/src/webserver/app.js index 3da8ccb..0007e41 100644 --- a/src/webserver/app.js +++ b/src/webserver/app.js @@ -34,9 +34,12 @@ router.post('/v1/seasoned/verify/:strayId', require('./controllers/seasoned/veri router.get('/v1/plex/search', require('./controllers/plex/searchMedia.js')); router.get('/v1/plex/playing', require('./controllers/plex/plexPlaying.js')); + +// router.get('/v1/plex/request/all', require('./controllers/plex/searchRequest.js')); router.get('/v1/plex/request', require('./controllers/plex/searchRequest.js')); router.get('/v1/plex/request/:mediaId', require('./controllers/plex/readRequest.js')); -// router.post('/v1/plex/request/:mediaId', require('./controllers/plex/submitRequest.js')); +router.post('/v1/plex/request/:mediaId', require('./controllers/plex/submitRequest.js')); + router.get('/v1/plex/hook', require('./controllers/plex/hookDump.js')); router.get('/v1/tmdb/search', require('./controllers/tmdb/searchMedia.js')); From 3bb43f08f2aa5404c5bd5ae2801d75ce04076bc0 Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Sun, 4 Jun 2017 00:13:35 +0200 Subject: [PATCH 4/4] Controller for handling submits of item requests. --- .../controllers/plex/submitRequest.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/webserver/controllers/plex/submitRequest.js diff --git a/src/webserver/controllers/plex/submitRequest.js b/src/webserver/controllers/plex/submitRequest.js new file mode 100644 index 0000000..0a53446 --- /dev/null +++ b/src/webserver/controllers/plex/submitRequest.js @@ -0,0 +1,18 @@ +const configuration = require('src/config/configuration').getInstance(); +const RequestRepository = require('src/plex/requestRepository'); +const requestRepository = new RequestRepository(); + +function submitRequestController(req, res) { + const id = req.params.requestId; + + requestRepository.submitRequest(id) + .then(() => { + // Better sendback message. + res.send({ success: true, message: 'Request sent' }); + }) + .catch((error) => { + res.status(500).send({ success: false, error: error.message }); + }); +} + +module.exports = submitRequestController;