try to fix api
This commit is contained in:
@@ -42,7 +42,7 @@ import type {
|
|||||||
PackageDetailResponse,
|
PackageDetailResponse,
|
||||||
PackageResponse,
|
PackageResponse,
|
||||||
} from "@/modules/package/package.types";
|
} 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 { Router, type Request, type Response } from "express";
|
||||||
import slugify from "slugify";
|
import slugify from "slugify";
|
||||||
import { ulid } from "ulid";
|
import { ulid } from "ulid";
|
||||||
@@ -152,20 +152,9 @@ export class PackageController extends Controller {
|
|||||||
|
|
||||||
const count = await orm.em.count(Package);
|
const count = await orm.em.count(Package);
|
||||||
|
|
||||||
const orderBy: OrderDefinition<Package> = {};
|
|
||||||
switch (query.sort_by) {
|
|
||||||
case "newest":
|
|
||||||
orderBy.createdAt = "DESC";
|
|
||||||
break;
|
|
||||||
case "oldest":
|
|
||||||
orderBy.createdAt = "ASC";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
let packageQueryBuilder = orm.em
|
let packageQueryBuilder = orm.em
|
||||||
.createQueryBuilder(Package, "_package")
|
.createQueryBuilder(Package, "_package")
|
||||||
.select(["*"], true)
|
.select(["*"])
|
||||||
.distinctOn(["class"])
|
|
||||||
.limit(query.per_page)
|
.limit(query.per_page)
|
||||||
.offset((query.page - 1) * query.per_page)
|
.offset((query.page - 1) * query.per_page)
|
||||||
.leftJoinAndSelect("_package.partner", "_partner");
|
.leftJoinAndSelect("_package.partner", "_partner");
|
||||||
@@ -174,18 +163,20 @@ export class PackageController extends Controller {
|
|||||||
packageQueryBuilder = packageQueryBuilder.where({ class: query.class });
|
packageQueryBuilder = packageQueryBuilder.where({ class: query.class });
|
||||||
}
|
}
|
||||||
if ("by_ideal" in query && query.by_ideal) {
|
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) {
|
switch (query.sort_by) {
|
||||||
case "newest":
|
case "newest":
|
||||||
packageQueryBuilder = packageQueryBuilder.orderBy({
|
packageQueryBuilder = packageQueryBuilder.orderBy({
|
||||||
"_package.created_at": "DESC",
|
createdAt: "DESC",
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case "oldest":
|
case "oldest":
|
||||||
packageQueryBuilder = packageQueryBuilder.orderBy({
|
packageQueryBuilder = packageQueryBuilder.orderBy({
|
||||||
"_package.created_at": "ASC",
|
createdAt: "ASC",
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user