From daf4188144b4bbb95f925983d7d5327a2f82010c Mon Sep 17 00:00:00 2001 From: Kittapath Date: Wed, 3 Apr 2024 14:54:56 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=84=E0=B9=89=E0=B8=99=E0=B8=AB=E0=B8=B2?= =?UTF-8?q?=E0=B9=82=E0=B8=84=E0=B8=A3=E0=B8=87=E0=B8=81=E0=B8=B2=E0=B8=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/DevelopmentController.ts | 49 ++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/src/controllers/DevelopmentController.ts b/src/controllers/DevelopmentController.ts index 451a952..3d0c821 100644 --- a/src/controllers/DevelopmentController.ts +++ b/src/controllers/DevelopmentController.ts @@ -316,6 +316,55 @@ export class DevelopmentController extends Controller { return new HttpSuccess(development.id); } + /** + * API ค้นหาโครงการ + * + * @summary DEV_00 - ค้นหาโครงการ # + * + * @param {string} id Id โครงการ + */ + @Get("search") + async ListDevelopemt( + @Query("page") page: number = 1, + @Query("pageSize") pageSize: number = 10, + @Query() searchField?: "year" | "projectName", + @Query() searchKeyword: string = "", + ) { + let queryLike = "developer.projectName LIKE :keyword"; + if (searchField == "year") { + queryLike = "developer.year LIKE :keyword"; + } + const [record, total] = await this.developmentRepository + .createQueryBuilder("developer") + .andWhere( + searchKeyword != undefined && searchKeyword != null && searchKeyword != "" + ? queryLike + : "1=1", + { + keyword: `%${searchKeyword}%`, + }, + ) + .skip((page - 1) * pageSize) + .take(pageSize) + .getManyAndCount(); + + const data = await Promise.all( + record.map((_data) => { + return { + id: _data.id, + year: _data.year, + projectName: _data.projectName, + dateStart: _data.dateStart, + dateEnd: _data.dateEnd, + totalDate: _data.totalDate, + addressAcademic: _data.addressAcademic, + topicAcademic: _data.topicAcademic, + }; + }), + ); + return new HttpSuccess({ data: data, total }); + } + /** * API ลบโครงการ/หลักสูตรการฝึกอบรม *