67 lines
1.6 KiB
TypeScript
67 lines
1.6 KiB
TypeScript
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({
|
|
orderBy: { name: "asc" },
|
|
});
|
|
}
|
|
|
|
@Get("province/{provinceId}")
|
|
async getProvinceById(@Path() provinceId: string) {
|
|
return await prisma.province.findFirst({
|
|
orderBy: { name: "asc" },
|
|
where: { id: provinceId },
|
|
});
|
|
}
|
|
|
|
@Get("province/{provinceId}/district")
|
|
async getDistrictOfProvince(@Path() provinceId: string) {
|
|
return await prisma.district.findMany({
|
|
orderBy: { name: "asc" },
|
|
where: { provinceId },
|
|
});
|
|
}
|
|
|
|
@Get("district")
|
|
async getDistrict() {
|
|
return await prisma.district.findMany({
|
|
orderBy: { name: "asc" },
|
|
});
|
|
}
|
|
|
|
@Get("district/{districtId}")
|
|
async getDistrictOfId(@Path() districtId: string) {
|
|
return await prisma.province.findFirst({
|
|
orderBy: { name: "asc" },
|
|
where: { id: districtId },
|
|
});
|
|
}
|
|
|
|
@Get("district/{districtId}/sub-district")
|
|
async getSubDistrictOfDistrict(@Path() districtId: string) {
|
|
return await prisma.subDistrict.findMany({
|
|
orderBy: { name: "asc" },
|
|
where: { districtId },
|
|
});
|
|
}
|
|
|
|
@Get("sub-district")
|
|
async getSubDistrict() {
|
|
return await prisma.subDistrict.findMany({
|
|
orderBy: { name: "asc" },
|
|
});
|
|
}
|
|
|
|
@Get("sub-district/{subDistrictId}")
|
|
async getSubDistrictOfId(@Path() subDistrictId: string) {
|
|
return await prisma.subDistrict.findFirst({
|
|
orderBy: { name: "asc" },
|
|
where: { id: subDistrictId },
|
|
});
|
|
}
|
|
}
|