product.controller.ts 864 B

123456789101112131415161718192021222324252627
  1. import { Body, Controller, Post } from '@nestjs/common';
  2. import { CreateProductRequest } from '@/pet-feeder/dto/create-product.request';
  3. import { ProductService } from '@/pet-feeder/service/product.service';
  4. import { ProductVo } from '@/pet-feeder/vo/product.vo';
  5. import { ProductMapper } from '@/pet-feeder/mapper/product.mapper';
  6. import { ApiBearerAuth, ApiOkResponse } from '@nestjs/swagger';
  7. @Controller('products')
  8. export class ProductController {
  9. constructor(
  10. private readonly productService: ProductService,
  11. private readonly productMapper: ProductMapper,
  12. ) {}
  13. @Post()
  14. @ApiOkResponse({
  15. type: ProductVo,
  16. })
  17. @ApiBearerAuth()
  18. async create(
  19. @Body() createProductRequest: CreateProductRequest,
  20. ): Promise<ProductVo> {
  21. return this.productMapper.toVo(
  22. await this.productService.create(createProductRequest),
  23. );
  24. }
  25. }