Estoy tratando de implementar la paginación basada en la página en este punto final en particular, pero el problema al que me enfrenté es que el cuerpo de la respuesta no está imprimiendo la página, el tamaño de la página y los resultados totales.
La URL es http://localhost:3006/events/tickets?sort_by=name&page=1&page_size=2
¿Cómo puedo devolver un cuerpo Json como este? Respuesta ideal que estoy tratando de lograr
{ content: [], // respponse items page: 1, // current page results_per_page: 10, // results per page total_pages: 10, // total number of pages total_results: 100 // number of all results } const getTickets = (tickets) => { return new Promise(async (resolve, reject) => { try { let query = `SELECT id, name, description, ticket_price, ticket_type FROM tickets`; let sort_by = tickets.sort_by; if(sort_by ?? false) { query += ` ORDER BY ${sort_by}`; if (sort_by) { query += (sort_by == 'desc' ? ` DESC` : ` ASC`); } } let limit = tickets.page_size; let replacements = { limit: limit }; if (limit) { query += ` LIMIT :limit`; replacements.limit = limit; } let offset = limit ? ((tickets.page - 1) * limit) : 0; if(offset) { query += ` OFFSET :offset `; replacements.offset = offset; }; const ticket = await db.sequelize.query( query, { replacements: replacements, type: QueryTypes.SELECT, } ); return resolve(ticket); } catch (err) { return reject(err) } }) } [ { "id": 1, "name": "Tennis Finals", "description": "Finals: Tennis Team 1 vs Tennis Team 2", "ticket_price": 25, "ticket_type": 1 }, { "id": 5, "name": "Testing Tickets", "description": "Description....", "ticket_price": 1000, "ticket_type": 30 } ]