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,
|
response: Response,
|
||||||
model: ModelDelegate,
|
model: ModelDelegate,
|
||||||
defaultOrderBy: TOrderBy,
|
defaultOrderBy: TOrderBy,
|
||||||
include?: object
|
include?: object,
|
||||||
|
where?: object
|
||||||
) => {
|
) => {
|
||||||
const query = request.body as unknown as DatatableQuery;
|
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
|
? { [query.columns[query.order[0].column].data]: query.order[0].dir } as unknown as TOrderBy
|
||||||
: defaultOrderBy;
|
: defaultOrderBy;
|
||||||
|
|
||||||
const where = query.search?.value
|
const searchWhere = query.search?.value
|
||||||
? {
|
? {
|
||||||
OR: Object.values(query.columns)
|
OR: Object.values(query.columns)
|
||||||
.filter(col => col.searchable)
|
.filter(col => col.searchable)
|
||||||
@ -42,6 +43,8 @@ export const datatableRequest = async <TOrderBy, TWhere>(
|
|||||||
}
|
}
|
||||||
: {};
|
: {};
|
||||||
|
|
||||||
|
where = { ...where, ...searchWhere };
|
||||||
|
|
||||||
const data = await model.findMany({
|
const data = await model.findMany({
|
||||||
skip: query.start,
|
skip: query.start,
|
||||||
take: query.length,
|
take: query.length,
|
||||||
|
@ -83,7 +83,8 @@ export const datatable = async (request: Request, response: Response) => {
|
|||||||
response,
|
response,
|
||||||
prisma.feed,
|
prisma.feed,
|
||||||
{ id: "asc" },
|
{ id: "asc" },
|
||||||
{ channels: true }
|
{ channels: true },
|
||||||
|
{ guild_id: request.params.guildId }
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user