From 20ccb3f26d96353801854f6019350f8601dca699 Mon Sep 17 00:00:00 2001 From: Bright Date: Wed, 15 May 2024 10:04:19 +0700 Subject: [PATCH] Fix District/subDistrict --- src/controllers/DistrictController.ts | 17 ++++++++ src/controllers/SubDistrictController.ts | 51 ++++++++++++++++-------- src/entities/District.ts | 3 ++ src/entities/SubDistrict.ts | 3 ++ 4 files changed, 57 insertions(+), 17 deletions(-) diff --git a/src/controllers/DistrictController.ts b/src/controllers/DistrictController.ts index 5966c185..778cc249 100644 --- a/src/controllers/DistrictController.ts +++ b/src/controllers/DistrictController.ts @@ -18,6 +18,7 @@ import HttpSuccess from "../interfaces/http-success"; import HttpStatusCode from "../interfaces/http-status"; import HttpError from "../interfaces/http-error"; import { District, CreateDistrict, UpdateDistrict } from "../entities/District"; +import { Province } from "../entities/Province"; import { Not } from "typeorm"; @Route("api/v1/org/metadata/district") @@ -30,6 +31,7 @@ import { Not } from "typeorm"; @SuccessResponse(HttpStatusCode.OK, "สำเร็จ") export class DistrictController extends Controller { private districtRepository = AppDataSource.getRepository(District); + private provinceRepository = AppDataSource.getRepository(Province); /** * API list รายการเขต @@ -84,6 +86,13 @@ export class DistrictController extends Controller { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลสถานภาพทางเขตนี้"); } + const chkProvince = await this.provinceRepository.findOne({ + where: { id: requestBody.provinceId } + }) + if(!chkProvince){ + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลสถานภาพทางจังหวัดนี้"); + } + const checkName = await this.districtRepository.findOne({ where: { name: requestBody.name }, }); @@ -118,6 +127,14 @@ export class DistrictController extends Controller { if (!_district) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลสถานภาพทางเขตนี้"); } + + const chkProvince = await this.provinceRepository.findOne({ + where: { id: requestBody.provinceId } + }) + if(!chkProvince){ + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลสถานภาพทางจังหวัดนี้"); + } + const checkName = await this.districtRepository.findOne({ where: { id: Not(id), name: requestBody.name }, }); diff --git a/src/controllers/SubDistrictController.ts b/src/controllers/SubDistrictController.ts index ced1e659..2d93445c 100644 --- a/src/controllers/SubDistrictController.ts +++ b/src/controllers/SubDistrictController.ts @@ -18,6 +18,7 @@ import HttpSuccess from "../interfaces/http-success"; import HttpStatusCode from "../interfaces/http-status"; import HttpError from "../interfaces/http-error"; import { SubDistrict, CreateSubDistrict, UpdateSubDistrict } from "../entities/SubDistrict"; +import { District } from "../entities/District"; import { Not } from "typeorm"; @Route("api/v1/org/metadata/subDistrict") @@ -30,11 +31,12 @@ import { Not } from "typeorm"; @SuccessResponse(HttpStatusCode.OK, "สำเร็จ") export class SubDistrictController extends Controller { private subDistrictRepository = AppDataSource.getRepository(SubDistrict); + private districtRepository = AppDataSource.getRepository(District); /** - * API list รายการเพศ + * API list รายการแขวง * - * @summary ORG_058 - CRUD เพศ (ADMIN) #62 + * @summary ORG_058 - CRUD แขวง (ADMIN) #62 * */ @Get() @@ -47,11 +49,11 @@ export class SubDistrictController extends Controller { } /** - * API รายละเอียดรายการเพศ + * API รายละเอียดรายการแขวง * - * @summary ORG_058 - CRUD เพศ (ADMIN) #62 + * @summary ORG_058 - CRUD แขวง (ADMIN) #62 * - * @param {string} id Id เพศ + * @param {string} id Id แขวง */ @Get("{id}") async GetById(@Path() id: string) { @@ -60,16 +62,16 @@ export class SubDistrictController extends Controller { select: ["id", "name"], }); if (!_subDistrict) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลสถานภาพทางเพศนี้"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลสถานภาพทางแขวงนี้"); } return new HttpSuccess(_subDistrict); } /** - * API สร้างรายการ body เพศ + * API สร้างรายการ body แขวง * - * @summary ORG_058 - CRUD เพศ (ADMIN) #62 + * @summary ORG_058 - CRUD แขวง (ADMIN) #62 * */ @Post() @@ -80,7 +82,14 @@ export class SubDistrictController extends Controller { ) { const _subDistrict = Object.assign(new SubDistrict(), requestBody); if (!_subDistrict) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลสถานภาพทางเพศนี้"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลสถานภาพทางแขวงนี้"); + } + + const chkDistrict = await this.districtRepository.findOne({ + where: { id: requestBody.districtId } + }) + if (!chkDistrict) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลสถานภาพทางเขตนี้"); } const checkName = await this.subDistrictRepository.findOne({ @@ -100,11 +109,11 @@ export class SubDistrictController extends Controller { } /** - * API แก้ไขรายการ body เพศ + * API แก้ไขรายการ body แขวง * - * @summary ORG_058 - CRUD เพศ (ADMIN) #62 + * @summary ORG_058 - CRUD แขวง (ADMIN) #62 * - * @param {string} id Id เพศ + * @param {string} id Id แขวง */ @Put("{id}") async Put( @@ -115,8 +124,16 @@ export class SubDistrictController extends Controller { ) { const _subDistrict = await this.subDistrictRepository.findOne({ where: { id: id } }); if (!_subDistrict) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลสถานภาพทางเพศนี้"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลสถานภาพทางแขวงนี้"); } + + const chkDistrict = await this.districtRepository.findOne({ + where: { id: requestBody.districtId } + }) + if (!chkDistrict) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลสถานภาพทางเขตนี้"); + } + const checkName = await this.subDistrictRepository.findOne({ where: { id: Not(id), name: requestBody.name }, }); @@ -132,11 +149,11 @@ export class SubDistrictController extends Controller { } /** - * API ลบรายการเพศ + * API ลบรายการแขวง * - * @summary ORG_058 - CRUD เพศ (ADMIN) #62 + * @summary ORG_058 - CRUD แขวง (ADMIN) #62 * - * @param {string} id Id เพศ + * @param {string} id Id แขวง */ @Delete("{id}") async Delete(@Path() id: string) { @@ -144,7 +161,7 @@ export class SubDistrictController extends Controller { where: { id: id }, }); if (!_delSubDistrict) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลสถานภาพทางเพศนี้"); + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลสถานภาพทางแขวงนี้"); } await this.subDistrictRepository.delete(_delSubDistrict.id); return new HttpSuccess(); diff --git a/src/entities/District.ts b/src/entities/District.ts index f6c1b639..61e292cc 100644 --- a/src/entities/District.ts +++ b/src/entities/District.ts @@ -36,6 +36,9 @@ export class District extends EntityBase { export class CreateDistrict { @Column() name: string; + + @Column() + provinceId: string; } export type UpdateDistrict = Partial; diff --git a/src/entities/SubDistrict.ts b/src/entities/SubDistrict.ts index ae54c6da..a9435dff 100644 --- a/src/entities/SubDistrict.ts +++ b/src/entities/SubDistrict.ts @@ -40,6 +40,9 @@ export class SubDistrict extends EntityBase { export class CreateSubDistrict { @Column() name: string; + + @Column() + districtId: string; } export type UpdateSubDistrict = Partial;