feat: accept order by and order field

This commit is contained in:
Methapon2001 2024-11-29 11:54:00 +07:00
parent a6aa96a6f9
commit 4d3f75b88d

View file

@ -12,7 +12,7 @@ import {
Tags,
Query,
} from "tsoa";
import { Prisma, Status } from "@prisma/client";
import { Prisma, Product, Status } from "@prisma/client";
import prisma from "../db";
import { RequestWithUser } from "../interfaces/user";
@ -128,6 +128,8 @@ export class ProductController extends Controller {
@Query() query: string = "",
@Query() page: number = 1,
@Query() pageSize: number = 30,
@Query() orderField?: keyof Product,
@Query() orderBy?: "asc" | "desc",
) {
const where = {
OR: queryOrNot<Prisma.ProductWhereInput[]>(query, [
@ -182,7 +184,11 @@ export class ProductController extends Controller {
createdBy: true,
updatedBy: true,
},
orderBy: [{ statusOrder: "asc" }, { createdAt: "asc" }],
orderBy: [
{ statusOrder: "asc" },
...((orderField && orderBy && [{ [orderField]: orderBy }]) || []),
{ createdAt: "asc" },
],
where,
take: pageSize,
skip: (page - 1) * pageSize,