Merge pull request #8 from KevinMidboe/api
Added endpoint for submitting movie/tv requests
This commit is contained in:
@@ -7,9 +7,23 @@ const TMDB = require('src/tmdb/tmdb');
|
|||||||
const tmdb = new TMDB(configuration.get('tmdb', 'apiKey'));
|
const tmdb = new TMDB(configuration.get('tmdb', 'apiKey'));
|
||||||
var Promise = require('bluebird');
|
var Promise = require('bluebird');
|
||||||
var rp = require('request-promise');
|
var rp = require('request-promise');
|
||||||
|
var pythonShell = require('python-shell');
|
||||||
|
|
||||||
|
const establishedDatabase = require('src/database/database');
|
||||||
|
|
||||||
class RequestRepository {
|
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) {
|
searchRequest(query, page, type) {
|
||||||
return Promise.resolve()
|
return Promise.resolve()
|
||||||
.then(() => tmdb.search(query, page, type))
|
.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;
|
module.exports = RequestRepository;
|
||||||
@@ -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/search', require('./controllers/plex/searchMedia.js'));
|
||||||
router.get('/v1/plex/playing', require('./controllers/plex/plexPlaying.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', require('./controllers/plex/searchRequest.js'));
|
||||||
router.get('/v1/plex/request/:mediaId', require('./controllers/plex/readRequest.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/plex/hook', require('./controllers/plex/hookDump.js'));
|
||||||
|
|
||||||
router.get('/v1/tmdb/search', require('./controllers/tmdb/searchMedia.js'));
|
router.get('/v1/tmdb/search', require('./controllers/tmdb/searchMedia.js'));
|
||||||
|
|||||||
@@ -8,9 +8,10 @@ const requestRepository = new RequestRepository();
|
|||||||
* @returns {Callback}
|
* @returns {Callback}
|
||||||
*/
|
*/
|
||||||
function readRequestController(req, res) {
|
function readRequestController(req, res) {
|
||||||
const mediaId = req.params.mediaId;
|
const requestId = req.params.requestId;
|
||||||
const { type } = req.query;
|
const { type } = req.query;
|
||||||
requestRepository.lookup(mediaId, type)
|
|
||||||
|
requestRepository.lookup(requestId, type)
|
||||||
.then((movies) => {
|
.then((movies) => {
|
||||||
res.send(movies);
|
res.send(movies);
|
||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
|
|||||||
18
src/webserver/controllers/plex/submitRequest.js
Normal file
18
src/webserver/controllers/plex/submitRequest.js
Normal file
@@ -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;
|
||||||
Reference in New Issue
Block a user