diff --git a/src/server/controllers/guild/api/feed.controller.ts b/src/server/controllers/guild/api/feed.controller.ts index 7bdd52a..f218414 100644 --- a/src/server/controllers/guild/api/feed.controller.ts +++ b/src/server/controllers/guild/api/feed.controller.ts @@ -83,8 +83,8 @@ interface DataTableResponse { } interface DatatableQuery { - length: number; - start: number; + length: string; + start: string; order: { column: string; dir: string }[]; columns: { [key: string]: { data: string; searchable: string }}; search: { value: string }; @@ -94,11 +94,11 @@ interface DatatableQuery { export const datatable = async (request: Request, response: Response) => { const query = request.query as unknown as DatatableQuery; - const size: number = query.length || 10; - const start: number = query.start; + const size: number = Number(query.length) || 10; + const start: number = Number(query.start); const order: string = (query.order && query.columns[query.order[0].column].data) || "id"; const direction: string = (query.order && query.order[0].dir) || "asc"; - const search: string = query.search.value; + const search: string = query.search?.value || ""; let dbQuery: any = {}; @@ -116,16 +116,19 @@ export const datatable = async (request: Request, response: Response) => { ); } + const orderBy: any = {}; + orderBy[order] = direction; + const data = await prisma.feed.findMany({ ...dbQuery, skip: start, take: size, - orderBy: { order: direction }, + orderBy: orderBy, }); response.json({ data: data, - recordsFiltered: await prisma.feed.count(...dbQuery), + recordsFiltered: await prisma.feed.count({...dbQuery}), recordsTotal: await prisma.feed.count() }); };