From 76e2de989efa46bcfc3fd5b2d2bf132a2280e086 Mon Sep 17 00:00:00 2001 From: Bright Date: Thu, 26 Sep 2024 11:35:44 +0700 Subject: [PATCH] =?UTF-8?q?fix=20=E0=B8=81=E0=B8=A3=E0=B8=93=E0=B8=B5?= =?UTF-8?q?=E0=B9=80=E0=B8=A3=E0=B8=B5=E0=B8=A2=E0=B8=81=E0=B9=83=E0=B8=8A?= =?UTF-8?q?=E0=B9=89=20api=20=E0=B8=A1=E0=B8=B2=E0=B8=81=E0=B8=81=E0=B8=A7?= =?UTF-8?q?=E0=B9=88=E0=B8=B2=201=20=E0=B9=80=E0=B8=A1=E0=B8=99=E0=B8=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/InsigniaController.ts | 65 +++++++++++++++++++++-- src/controllers/InsigniaTypeController.ts | 40 ++++++++++++-- 2 files changed, 96 insertions(+), 9 deletions(-) diff --git a/src/controllers/InsigniaController.ts b/src/controllers/InsigniaController.ts index 57076b92..0150f118 100644 --- a/src/controllers/InsigniaController.ts +++ b/src/controllers/InsigniaController.ts @@ -147,8 +147,7 @@ export class InsigniaController extends Controller { * @param {string} id Id เครื่องราชอิสริยาภรณ์ */ @Get("{id}") - async GetInsigniaById(@Path() id: string, @Request() request: RequestWithUser) { - await new permission().PermissionGet(request, "SYS_INSIGNIA_RECORD"); + async GetInsigniaById(@Path() id: string) { const insignia = await this.insigniaRepository.findOne({ relations: ["insigniaType"], select: [ @@ -187,8 +186,7 @@ export class InsigniaController extends Controller { * */ @Get() - async GetInsignia(@Request() request: RequestWithUser) { - await new permission().PermissionList(request, "SYS_INSIGNIA_RECORD"); + async GetInsignia() { const insigniaAll = await this.insigniaRepository.find({ relations: ["insigniaType"], select: [ @@ -220,6 +218,65 @@ export class InsigniaController extends Controller { return new HttpSuccess(mapInsigniaAll); } + /** + * API รายการเครื่องราชอิสริยาภรณ์ (เช็คสิทธิ์) + * + * @summary ORG_ - รายการเครื่องราชอิสริยาภรณ์ (ADMIN) #เช็คสิทธิ์ + * + * @param {string} path เมนูเช็คสิทธิ์ + */ + @Get("path/{path}") + async GetInsigniaPath(@Path() path: string, @Request() request: RequestWithUser) { + path = path.toLocaleUpperCase(); + let getPermission: string = ""; + if(path == "MANAGE") { + getPermission = "SYS_INSIGNIA_MANAGE" + } + else if(path == "RECORD") { + getPermission = "SYS_INSIGNIA_RECORD" + } + else if(path == "ALLOCATE") { + getPermission = "SYS_INSIGNIA_ALLOCATE" + } + else if(path == "BORROW") { + getPermission = "SYS_INSIGNIA_BORROW" + } + else { + getPermission = "SYS_INSIGNIA_MANAGE" + } + await new permission().PermissionList(request, getPermission); + const insigniaAll = await this.insigniaRepository.find({ + relations: ["insigniaType"], + select: [ + "id", + "name", + "shortName", + "createdAt", + "lastUpdatedAt", + "lastUpdateFullName", + "isActive", + "note", + "insigniaTypeId", + ], + where: { isActive: true }, + order: { level: "ASC" }, + }); + + const mapInsigniaAll = insigniaAll.map((item) => ({ + id: item.id, + name: item.name, + shortName: item.shortName, + insigniaTypeId: item.insigniaTypeId ?? null, + insigniaTypeName: item.insigniaType == null ? null : item.insigniaType.name, //ลำดับชั้นเครื่องราช + createdAt: item.createdAt, + lastUpdatedAt: item.lastUpdatedAt, + lastUpdateFullName: item.lastUpdateFullName, + isActive: item.isActive, + note: item.note, + })); + return new HttpSuccess(mapInsigniaAll); + } + /** * API จัดลำดับแสดงผลเครื่องราชอิสริยาภรณ์ * diff --git a/src/controllers/InsigniaTypeController.ts b/src/controllers/InsigniaTypeController.ts index 5b899234..288ece85 100644 --- a/src/controllers/InsigniaTypeController.ts +++ b/src/controllers/InsigniaTypeController.ts @@ -161,8 +161,7 @@ export class InsigniaTypeController extends Controller { * @param {string} id Id ลำดับชั้นเครื่องราชอิสริยาภรณ์ */ @Get("{id}") - async GetInsigniaTypeById(@Path() id: string, @Request() request: RequestWithUser) { - await new permission().PermissionGet(request, "SYS_INSIGNIA_RECORD"); + async GetInsigniaTypeById(@Path() id: string) { const insigniaType = await this.insigniaTypeRepository.findOne({ relations: ["insignias"], select: ["id", "name", "createdAt", "lastUpdatedAt", "lastUpdateFullName", "isActive"], @@ -183,13 +182,44 @@ export class InsigniaTypeController extends Controller { * @summary ORG_ - รายการลำดับชั้นเครื่องราชอิสริยาภรณ์ (ADMIN) # * */ - @Get("") - async GetInsigniaType(@Request() request: RequestWithUser) { - await new permission().PermissionList(request, "SYS_INSIGNIA_RECORD"); + @Get() + async GetInsigniaType() { const insigniaTypeAll = await this.insigniaTypeRepository.find({ select: ["id", "name", "createdAt", "lastUpdatedAt", "lastUpdateFullName", "isActive"], order: { name: "ASC" }, }); return new HttpSuccess(insigniaTypeAll); } + + /** + * API รายการลำดับชั้นเครื่องราชอิสริยาภรณ์ (เช็คสิทธิ์) + * + * @summary ORG_ - รายการลำดับชั้นเครื่องราชอิสริยาภรณ์ (ADMIN) #เช็คสิทธิ์ + * + * @param {string} path เมนูเช็คสิทธิ์ + */ + @Get("path/{path}") + async GetInsigniaTypePath(@Path() path: string, @Request() request: RequestWithUser) { + path = path.toLocaleUpperCase(); + let getPermission: string = ""; + if(path == "RECORD") { + getPermission = "SYS_INSIGNIA_RECORD" + } + else if(path == "ALLOCATE") { + getPermission = "SYS_INSIGNIA_ALLOCATE" + } + else if(path == "BORROW") { + getPermission = "SYS_INSIGNIA_BORROW" + } + else { + getPermission = "SYS_INSIGNIA_RECORD" + } + await new permission().PermissionList(request, getPermission); + const insigniaTypeAll = await this.insigniaTypeRepository.find({ + select: ["id", "name", "createdAt", "lastUpdatedAt", "lastUpdateFullName", "isActive"], + where: {isActive : true}, + order: { name: "ASC" }, + }); + return new HttpSuccess(insigniaTypeAll); + } }