feat: allow a custom 'where' clause parameter for datatable queries.

This commit is contained in:
Corban-Lee Jones 2025-04-29 12:27:19 +01:00
parent 31b9063365
commit 637415b8ca
2 changed files with 7 additions and 3 deletions

View File

@ -24,7 +24,8 @@ export const datatableRequest = async <TOrderBy, TWhere>(
response: Response,
model: ModelDelegate,
defaultOrderBy: TOrderBy,
include?: object
include?: object,
where?: object
) => {
const query = request.body as unknown as DatatableQuery;
@ -32,7 +33,7 @@ export const datatableRequest = async <TOrderBy, TWhere>(
? { [query.columns[query.order[0].column].data]: query.order[0].dir } as unknown as TOrderBy
: defaultOrderBy;
const where = query.search?.value
const searchWhere = query.search?.value
? {
OR: Object.values(query.columns)
.filter(col => col.searchable)
@ -42,6 +43,8 @@ export const datatableRequest = async <TOrderBy, TWhere>(
}
: {};
where = { ...where, ...searchWhere };
const data = await model.findMany({
skip: query.start,
take: query.length,

View File

@ -83,7 +83,8 @@ export const datatable = async (request: Request, response: Response) => {
response,
prisma.feed,
{ id: "asc" },
{ channels: true }
{ channels: true },
{ guild_id: request.params.guildId }
);
};