diff --git a/src/modules/package/package.controller.ts b/src/modules/package/package.controller.ts index 4047da1..41709f6 100644 --- a/src/modules/package/package.controller.ts +++ b/src/modules/package/package.controller.ts @@ -42,7 +42,7 @@ import type { PackageDetailResponse, PackageResponse, } from "@/modules/package/package.types"; -import { wrap, type OrderDefinition } from "@mikro-orm/core"; +import { wrap } from "@mikro-orm/core"; import { Router, type Request, type Response } from "express"; import slugify from "slugify"; import { ulid } from "ulid"; @@ -152,20 +152,9 @@ export class PackageController extends Controller { const count = await orm.em.count(Package); - const orderBy: OrderDefinition = {}; - switch (query.sort_by) { - case "newest": - orderBy.createdAt = "DESC"; - break; - case "oldest": - orderBy.createdAt = "ASC"; - break; - } - let packageQueryBuilder = orm.em .createQueryBuilder(Package, "_package") - .select(["*"], true) - .distinctOn(["class"]) + .select(["*"]) .limit(query.per_page) .offset((query.page - 1) * query.per_page) .leftJoinAndSelect("_package.partner", "_partner"); @@ -174,18 +163,20 @@ export class PackageController extends Controller { packageQueryBuilder = packageQueryBuilder.where({ class: query.class }); } if ("by_ideal" in query && query.by_ideal) { - packageQueryBuilder = packageQueryBuilder.where({ class: "by_ideal" }); + packageQueryBuilder = packageQueryBuilder.distinctOn(["class"]).orderBy({ + class: "ASC", + }); } switch (query.sort_by) { case "newest": packageQueryBuilder = packageQueryBuilder.orderBy({ - "_package.created_at": "DESC", + createdAt: "DESC", }); break; case "oldest": packageQueryBuilder = packageQueryBuilder.orderBy({ - "_package.created_at": "ASC", + createdAt: "ASC", }); break; }