fix: datatable count including entries from other guilds

This commit is contained in:
Corban-Lee Jones 2025-05-01 12:45:42 +01:00
parent 7ef8b88aab
commit 6b6af17731

View File

@ -25,7 +25,7 @@ export const datatableRequest = async <TOrderBy, TWhere>(
model: ModelDelegate, model: ModelDelegate,
defaultOrderBy: TOrderBy, defaultOrderBy: TOrderBy,
include?: object, include?: object,
where?: object baseWhere?: object
) => { ) => {
const query = request.body as unknown as DatatableQuery; const query = request.body as unknown as DatatableQuery;
@ -33,7 +33,7 @@ export const datatableRequest = async <TOrderBy, TWhere>(
? { [query.columns[query.order[0].column].data]: query.order[0].dir } as unknown as TOrderBy ? { [query.columns[query.order[0].column].data]: query.order[0].dir } as unknown as TOrderBy
: defaultOrderBy; : defaultOrderBy;
const searchWhere = query.search?.value let filterWhere = query.search?.value
? { ? {
OR: Object.values(query.columns) OR: Object.values(query.columns)
.filter(col => col.searchable) .filter(col => col.searchable)
@ -43,18 +43,18 @@ export const datatableRequest = async <TOrderBy, TWhere>(
} }
: {}; : {};
where = { ...where, ...searchWhere }; filterWhere = { ...filterWhere, ...baseWhere };
const data = await model.findMany({ const data = await model.findMany({
skip: query.start, skip: query.start,
take: query.length, take: query.length,
orderBy, orderBy: orderBy,
where, where: filterWhere,
include, include: include,
}); });
const recordsFiltered = await model.count({ where }); const recordsFiltered = await model.count({ where: filterWhere });
const recordsTotal = await model.count(); const recordsTotal = await model.count({ where: baseWhere });
response.json({ response.json({
data, data,