Files
dsc-api/src/modules/address/address.controller.ts
T
2025-03-02 16:28:07 +03:30

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