first commit
This commit is contained in:
45
src/modules/cities/cities.controller.ts
Normal file
45
src/modules/cities/cities.controller.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import { Body, Controller, Get, Param, Post, UseGuards } from '@nestjs/common';
|
||||
import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger';
|
||||
import { Public } from '../../common/decorators/public.decorator';
|
||||
import { Roles } from '../../common/decorators/roles.decorator';
|
||||
import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard';
|
||||
import { RolesGuard } from '../../common/guards/roles.guard';
|
||||
import { CitiesService } from './cities.service';
|
||||
|
||||
@ApiTags('cities')
|
||||
@Controller('cities')
|
||||
export class CitiesController {
|
||||
constructor(private readonly citiesService: CitiesService) {}
|
||||
|
||||
@Public()
|
||||
@Get()
|
||||
@ApiOperation({ summary: 'Get all cities' })
|
||||
findAll() {
|
||||
return this.citiesService.findAll();
|
||||
}
|
||||
|
||||
@Public()
|
||||
@Get(':cityId/districts')
|
||||
@ApiOperation({ summary: 'Get districts for a city' })
|
||||
findDistricts(@Param('cityId') cityId: string) {
|
||||
return this.citiesService.findDistricts(cityId);
|
||||
}
|
||||
|
||||
@ApiBearerAuth()
|
||||
@UseGuards(JwtAuthGuard, RolesGuard)
|
||||
@Roles('admin')
|
||||
@Post()
|
||||
@ApiOperation({ summary: 'Create city (admin only)' })
|
||||
createCity(@Body() body: { name: string; lat: number; lng: number }) {
|
||||
return this.citiesService.createCity(body.name, body.lat, body.lng);
|
||||
}
|
||||
|
||||
@ApiBearerAuth()
|
||||
@UseGuards(JwtAuthGuard, RolesGuard)
|
||||
@Roles('admin')
|
||||
@Post(':cityId/districts')
|
||||
@ApiOperation({ summary: 'Create district (admin only)' })
|
||||
createDistrict(@Param('cityId') cityId: string, @Body() body: { name: string }) {
|
||||
return this.citiesService.createDistrict(cityId, body.name);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user