diff --git a/src/controllers/04-product-controller.ts b/src/controllers/04-product-controller.ts index 6a44f3c..e128cda 100644 --- a/src/controllers/04-product-controller.ts +++ b/src/controllers/04-product-controller.ts @@ -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(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,