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 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')); 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) => { 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;