import { Controller, Get, Post, Body, Patch, Param, Delete, UseGuards, } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; import { CategoriesService } from './categories.service'; import { CreateCategoryDto } from './dto/create-category.dto'; import { UpdateCategoryDto } from './dto/update-category.dto'; import { CategoryEntity } from './entities/category.entity'; import {AuthorizationGuard} from "../../authorization/authorization.guard"; @ApiTags('categories') @Controller('categories') export class CategoriesController { constructor(private readonly categoriesService: CategoriesService) {} @UseGuards(AuthorizationGuard) @Post() async create( @Body() createCategoryDto: CreateCategoryDto, ): Promise<CategoryEntity> { return await this.categoriesService.create(createCategoryDto); } @Get() async findAll(): Promise<CategoryEntity[]> { return await this.categoriesService.findAll(); } @Get(':id') async findOne(@Param('id') id: string): Promise<CategoryEntity> { return await this.categoriesService.findOne(id); } @UseGuards(AuthorizationGuard) @Patch(':id') async update( @Param('id') id: string, @Body() updateCategoryDto: UpdateCategoryDto, ): Promise<CategoryEntity> { return await this.categoriesService.update(id, updateCategoryDto); } @UseGuards(AuthorizationGuard) @Delete(':id') async remove(@Param('id') id: string): Promise<CategoryEntity> { return await this.categoriesService.remove(id); } }