Request list also gets and returns total pages

This commit is contained in:
2019-06-28 21:51:43 +02:00
parent 162d20ae52
commit 270a259cee

View File

@@ -13,6 +13,7 @@ class RequestRepository {
this.queries = {
add: 'insert into requests (id,title,year,poster_path,background_path,requested_by,ip,user_agent,type) values(?,?,?,?,?,?,?,?,?)',
fetchAll: 'select * from requests where status != "downloaded" order by date desc LIMIT 25 OFFSET ?*25-25',
totalRequests: 'select count(*) as totalRequests from requests',
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 "%?%"`,
@@ -125,11 +126,17 @@ class RequestRepository {
// console.log('hit', sort_by, sort_direction, filter_param, query)
return Promise.resolve()
.then((dbQuery) => this.database.all(this.queries.fetchAll, page))
.then((rows) => {
return rows.map(item => { item.poster = item.poster_path; return item })
.then(async (rows) => {
const sqliteResponse = await this.database.get(this.queries.totalRequests)
const totalRequests = sqliteResponse['totalRequests']
const totalPages = Math.floor(totalRequests / 25)
return [ rows.map(item => { item.poster = item.poster_path; return item }), totalPages ]
return Promise.all(this.mapToTmdbByType(rows))
})
.then(result => Promise.resolve({results: result, total_results: result.length}))
.then(([result, totalPages]) => Promise.resolve({
results: result, total_results: result.length, page: page, total_pages: totalPages
}))
.catch(error => { console.log(error);throw error })
}
}