feat: allow a custom 'where' clause parameter for datatable queries.
This commit is contained in:
parent
31b9063365
commit
637415b8ca
@ -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,
|
||||
|
@ -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 }
|
||||
);
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user