jws-backend/src/controllers/00-address-controller.ts
2024-11-28 15:19:35 +07:00

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 },
});
}
}