From 3f61b473146d57ff5b455a4faf12e0ec3b2b5cd7 Mon Sep 17 00:00:00 2001 From: adisak Date: Wed, 3 Sep 2025 11:20:23 +0700 Subject: [PATCH] update sort test --- src/controllers/DevelopmentRequestController.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/controllers/DevelopmentRequestController.ts b/src/controllers/DevelopmentRequestController.ts index ba4e8458..752ae293 100644 --- a/src/controllers/DevelopmentRequestController.ts +++ b/src/controllers/DevelopmentRequestController.ts @@ -45,13 +45,15 @@ export class DevelopmentRequestController extends Controller { @Query("page") page: number = 1, @Query("pageSize") pageSize: number = 10, @Query("status") status?: string, + @Query("sortBy") sortBy?: string, + @Query("descending") descending?: boolean, ) { const profile = await this.profileRepository.findOneBy({ keycloak: req.user.sub }); if (!profile) { throw new HttpError(HttpStatus.BAD_REQUEST, "ไม่พบ profile ดังกล่าว"); } - - const [lists, total] = await AppDataSource.getRepository(DevelopmentRequest) + + let query = await AppDataSource.getRepository(DevelopmentRequest) .createQueryBuilder("developmentRequest") .andWhere( status == undefined || status.trim().toUpperCase() == "ALL" || status == "" @@ -103,6 +105,15 @@ export class DevelopmentRequestController extends Controller { }), ) .orderBy("developmentRequest.createdAt", "DESC") + + if (sortBy) { + query = query.orderBy( + `developmentRequest.${sortBy}`, + descending ? "DESC" : "ASC" + ); + } + + const [lists, total] = await query .skip((page - 1) * pageSize) .take(pageSize) .getManyAndCount();