fashionAvenue / server / src / products / products.controller.ts
products.controller.ts
Raw
import {
  Controller,
  Get,
  Post,
  Body,
  Patch,
  Param,
  Delete,
  Query,
} from '@nestjs/common';
import { ProductsService } from './products.service';
import { CreateProductDto } from './dto/create-product.dto';
import { UpdateProductDto } from './dto/update-product.dto';
import { Public } from '../common/decorators';

@Controller()
export class ProductsController {
  constructor(private readonly productsService: ProductsService) {}

  @Post()
  @Public()
  create(@Body() createProductDto: CreateProductDto) {
    return this.productsService.create(createProductDto);
  }

  @Get('products/:category/:page')
  @Public()
  findOne(@Param('category') category: string, @Param('page') page: number) {
    return this.productsService.findByCategory(category, page);
  }

  @Get('count/:category')
  @Public()
  findTotalPages(@Param('category') category: string) {
    return this.productsService.findTotalPages(category);
  }

  @Patch(':id')
  @Public()
  update(@Param('id') id: string, @Body() updateProductDto: UpdateProductDto) {
    return this.productsService.update(+id, updateProductDto);
  }

  @Delete(':id')
  @Public()
  remove(@Param('id') id: string) {
    return this.productsService.remove(+id);
  }
}