Request list also gets and returns total pages
This commit is contained in:
		| @@ -13,6 +13,7 @@ class RequestRepository { | |||||||
|     this.queries = { |     this.queries = { | ||||||
|       add: 'insert into requests (id,title,year,poster_path,background_path,requested_by,ip,user_agent,type) values(?,?,?,?,?,?,?,?,?)', |       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', |       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 ? ?`, |       fetchAllSort: `select id, type from request order by ? ?`, | ||||||
|       fetchAllFilter: `select id, type from request where ? is "?"`, |       fetchAllFilter: `select id, type from request where ? is "?"`, | ||||||
|       fetchAllQuery: `select id, type from request where title like "%?%" or year like "%?%"`, |       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) |     // console.log('hit', sort_by, sort_direction, filter_param, query) | ||||||
|     return Promise.resolve() |     return Promise.resolve() | ||||||
|       .then((dbQuery) => this.database.all(this.queries.fetchAll, page)) |       .then((dbQuery) => this.database.all(this.queries.fetchAll, page)) | ||||||
|       .then((rows) => { |       .then(async (rows) => { | ||||||
|         return rows.map(item => { item.poster = item.poster_path; return item }) |         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)) |         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 }) |       .catch(error => { console.log(error);throw error }) | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user