From ac027a97d6ed8d0dd092718d1e8583929cde1d5e Mon Sep 17 00:00:00 2001 From: Kevin Midboe Date: Fri, 28 Jun 2019 18:48:58 +0200 Subject: [PATCH] Added pagination and removed sort & filtering for requested items --- seasoned_api/src/request/request.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/seasoned_api/src/request/request.js b/seasoned_api/src/request/request.js index 64d4205..f4ce7d7 100644 --- a/seasoned_api/src/request/request.js +++ b/seasoned_api/src/request/request.js @@ -12,7 +12,7 @@ class RequestRepository { this.database = database || establishedDatabase; this.queries = { add: 'insert into request (id,title,year,type) values(?,?,?,?)', - fetchAll: 'select id, type from request', + fetchAll: 'select * from requests where status != "downloaded" order by date desc LIMIT 25 OFFSET ?*25-25', fetchAllSort: `select id, type from request order by ? ?`, fetchAllFilter: `select id, type from request where ? is "?"`, fetchAllQuery: `select id, type from request where title like "%?%" or year like "%?%"`, @@ -104,14 +104,17 @@ class RequestRepository { * @param {String} query param to filter result on. Filters on title and year * @returns {Promise} */ - fetchAll(sort_by=undefined, sort_direction='asc', filter_param=undefined, query=undefined) { + fetchAll(page, sort_by=undefined, sort_direction='asc', filter_param=undefined, query=undefined) { + // TODO implemented sort and filter + // console.log('hit', sort_by, sort_direction, filter_param, query) return Promise.resolve() - .then(() => utils.validSort(sort_by, sort_direction)) - .then(() => utils.validFilter(filter_param)) - .then(() => this.sortAndFilterToDbQuery(sort_by, sort_direction, filter_param, query)) - .then((dbQuery) => this.database.all(dbQuery)) - .then((rows) => Promise.all(this.mapToTmdbByType(rows))) + .then((dbQuery) => this.database.all(this.queries.fetchAll, page)) + .then((rows) => { + return rows.map(item => { item.poster = item.poster_path; return item }) + return Promise.all(this.mapToTmdbByType(rows)) +}) .then(result => Promise.resolve({results: result, total_results: result.length})) + .catch(error => { console.log(error);throw error }) } }