From a0052474f6504c496a9171e9212ab69b729b64f8 Mon Sep 17 00:00:00 2001 From: AdisakKanthawilang Date: Fri, 26 Jan 2024 16:51:06 +0700 Subject: [PATCH 1/2] fix OrgRoot --- src/controllers/OrgRootController.ts | 36 +++++++++++++++++++++------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/src/controllers/OrgRootController.ts b/src/controllers/OrgRootController.ts index 0a7d9297..8bf34c7c 100644 --- a/src/controllers/OrgRootController.ts +++ b/src/controllers/OrgRootController.ts @@ -21,7 +21,7 @@ import HttpError from "../interfaces/http-error"; import HttpStatusCode from "../interfaces/http-status"; import { OrgRevision } from "../entities/OrgRevision"; -@Route("organization") +@Route("api/v1/organization") @Tags("OrgRoot") @Security("bearerAuth") export class OrgRootController extends Controller { @@ -54,9 +54,10 @@ export class OrgRootController extends Controller { @Request() request: { user: Record }, ) { try { - const orgRevision = await this.orgRevisionRepository.findOne({ - where: { id: requestBody.orgRevisionId }, - }); + const validOrgRootRanks = ["DEPARTMENT", "OFFICE", "DIVISION", "SECTION"]; + if (!validOrgRootRanks.includes(requestBody.orgRootRank.toUpperCase())) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "not found. orgRootRank"); + } const orgRoot = Object.assign(new OrgRoot(), requestBody); if (!orgRoot) { @@ -69,6 +70,11 @@ export class OrgRootController extends Controller { if (chkCode != null) { throw new HttpError(HttpStatusCode.NOT_FOUND, "รหัสหน่วยงานนี้มีอยู่ในระบบแล้ว"); } + + const orgRevision = await this.orgRevisionRepository.findOne({ + where: { id: requestBody.orgRevisionId }, + }); + if (orgRevision) { orgRoot.createdUserId = request.user.sub; orgRoot.createdFullName = request.user.name; @@ -111,18 +117,30 @@ export class OrgRootController extends Controller { @Request() request: { user: Record }, ) { try { - const orgRoot = await this.orgRootRepository.findOne({ where: { id } }); - if (!orgRoot) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + + const validOrgRootRanks = ["DEPARTMENT", "OFFICE", "DIVISION", "SECTION"]; + if (!validOrgRootRanks.includes(requestBody.orgRootRank.toUpperCase())) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "not found. orgRootRank"); } + const revisionIdExits = await this.orgRevisionRepository.findOne({ where: {id:requestBody.orgRevisionId} }); + if(!revisionIdExits){ + throw new HttpError(HttpStatusCode.NOT_FOUND, "not found. RevisionId"); + } + const chkCode = await this.orgRootRepository.findOne({ where: { orgRootCode: requestBody.orgRootCode }, }); if (chkCode?.id != id && chkCode != null) { throw new HttpError(HttpStatusCode.NOT_FOUND, "รหัสหน่วยงานนี้มีอยู่ในระบบแล้ว"); } - + + const orgRoot = await this.orgRootRepository.findOne({ where: { id } }); + if (!orgRoot) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + } + + orgRoot.orgRevisionId = orgRoot.orgRevisionId orgRoot.lastUpdateUserId = request.user.sub; orgRoot.lastUpdateFullName = request.user.name; orgRoot.lastUpdatedAt = new Date(); @@ -156,7 +174,7 @@ export class OrgRootController extends Controller { await this.orgRootRepository.remove(orgRoot); } else { throw new HttpError( - HttpStatusCode.NOT_FOUND, + HttpStatusCode.INTERNAL_SERVER_ERROR, "ไม่สามารถลบข้อมูลได้เมื่อมีข้อมูลโครงสร้างระดับ1", ); } From bbc700478cd0909a6c1c99cfc63e9df53f3ff396 Mon Sep 17 00:00:00 2001 From: AdisakKanthawilang Date: Fri, 26 Jan 2024 17:03:41 +0700 Subject: [PATCH 2/2] =?UTF-8?q?=E0=B9=81=E0=B8=81=E0=B9=89=E0=B9=84?= =?UTF-8?q?=E0=B8=82=20route?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/OrgRootController.ts | 2 +- src/controllers/OrganizationController.ts | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/controllers/OrgRootController.ts b/src/controllers/OrgRootController.ts index 8bf34c7c..9d6d139a 100644 --- a/src/controllers/OrgRootController.ts +++ b/src/controllers/OrgRootController.ts @@ -21,7 +21,7 @@ import HttpError from "../interfaces/http-error"; import HttpStatusCode from "../interfaces/http-status"; import { OrgRevision } from "../entities/OrgRevision"; -@Route("api/v1/organization") +@Route("api/v1/org") @Tags("OrgRoot") @Security("bearerAuth") export class OrgRootController extends Controller { diff --git a/src/controllers/OrganizationController.ts b/src/controllers/OrganizationController.ts index 3ad5edfc..ea29d7b1 100644 --- a/src/controllers/OrganizationController.ts +++ b/src/controllers/OrganizationController.ts @@ -113,4 +113,20 @@ export class OrganizationController extends Controller { return error; } } + + /** + * API รายละเอียดโครงสร้าง + * + * @summary ORG_023 - รายละเอียดโครงสร้าง (ADMIN) #25 + * + */ + // @Get() + // async detail(@Path() id: string) { + // try { + + // return new HttpSuccess(); + // } catch (error) { + // return error; + // } + // } }