39 lines
1.4 KiB
TypeScript
Executable File
39 lines
1.4 KiB
TypeScript
Executable File
import { Controller, Get, Param, Query } from "@nestjs/common";
|
|
import { ApiOperation } from "@nestjs/swagger";
|
|
|
|
import { SearchCitiesDto } from "./DTO/cities-search-query.dto";
|
|
import { SearchProvincesDto } from "./DTO/provinces-search-query.dto";
|
|
import { AddressService } from "./providers/address.service";
|
|
import { AuthGuards } from "../../common/decorators/auth-guard.decorator";
|
|
import { ParamNumberIdDto } from "../../common/DTO/param.dto";
|
|
|
|
@Controller("address")
|
|
@AuthGuards()
|
|
export class AddressController {
|
|
constructor(private readonly addressService: AddressService) {}
|
|
|
|
@ApiOperation({ summary: "Get all cities" })
|
|
@Get("cities/list")
|
|
getCitiesList(@Query() queryDto: SearchCitiesDto) {
|
|
return this.addressService.getAllCities(queryDto);
|
|
}
|
|
|
|
@ApiOperation({ summary: "Get all provinces" })
|
|
@Get("provinces/list")
|
|
getProvincesList(@Query() queryDto: SearchProvincesDto) {
|
|
return this.addressService.getAllProvinces(queryDto);
|
|
}
|
|
|
|
@ApiOperation({ summary: "Get cities of provinces" })
|
|
@Get("provinces/:id/cities")
|
|
getCitiesByProvinces(@Query() queryDto: SearchProvincesDto, @Param() paramDto: ParamNumberIdDto) {
|
|
return this.addressService.getCitiesByProvince(queryDto, +paramDto.id);
|
|
}
|
|
|
|
@ApiOperation({ summary: "Get province of city" })
|
|
@Get("cities/:id/province")
|
|
getProvinceByCity(@Param() paramDto: ParamNumberIdDto) {
|
|
return this.addressService.getProvinceByCity(+paramDto.id);
|
|
}
|
|
}
|