From d58046502c0e6b083c954d86c8b3e033e72c4744 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Tue, 2 Apr 2024 09:26:29 +0700 Subject: [PATCH] feat: add province, district, sub-district endpoint --- src/controllers/address-controller.ts | 56 +++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/controllers/address-controller.ts diff --git a/src/controllers/address-controller.ts b/src/controllers/address-controller.ts new file mode 100644 index 0000000..c836829 --- /dev/null +++ b/src/controllers/address-controller.ts @@ -0,0 +1,56 @@ +import { Controller, Get, Path, Route, Tags } from "tsoa"; +import prisma from "../db"; + +@Route("api/address") +@Tags("Address") +export class AddressController extends Controller { + @Get("province") + async getProvince() { + return await prisma.province.findMany(); + } + + @Get("province/{provinceId}") + async getProvinceById(@Path() provinceId: string) { + return await prisma.province.findFirst({ + where: { id: provinceId }, + }); + } + + @Get("province/{provinceId}/district") + async getDistrictOfProvince(@Path() provinceId: string) { + return await prisma.district.findMany({ + where: { provinceId }, + }); + } + + @Get("district") + async getDistrict() { + return await prisma.district.findMany(); + } + + @Get("district/{districtId}") + async getDistrictOfId(@Path() districtId: string) { + return await prisma.province.findFirst({ + where: { id: districtId }, + }); + } + + @Get("district/{districtId}/sub-district") + async getSubDistrictOfDistrict(@Path() districtId: string) { + return await prisma.subDistrict.findMany({ + where: { districtId }, + }); + } + + @Get("sub-district") + async getSubDistrict() { + return await prisma.subDistrict.findMany(); + } + + @Get("sub-district/{subDistrictId}") + async getSubDistrictOfId(@Path() subDistrictId: string) { + return await prisma.subDistrict.findFirst({ + where: { id: subDistrictId }, + }); + } +}