import { Controller, Get, Path, Route, Tags } from "tsoa"; import prisma from "../db"; @Route("api/v1/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 }, }); } }