import { Controller, Get, UseInterceptors } from '@nestjs/common'; import { HarbingerService } from './harbinger.service'; import { FocoCoffeeService } from './fococoffee.service'; import { LimaService } from './lima.service'; import { BindleService } from './bindle.service'; import { ApiResponse, ApiTags } from '@nestjs/swagger'; import { CacheInterceptor } from '@nestjs/cache-manager'; @Controller('fococoffee') @ApiTags('fococoffee') @UseInterceptors(CacheInterceptor) export class FocoCoffeeController { constructor( private readonly focoCoffeeService: FocoCoffeeService, private readonly harbingerService: HarbingerService, private readonly limaService: LimaService, private readonly bindleService: BindleService ) { } @Get('harbinger/products') @ApiResponse({ status: 200, description: 'Returns the list of Harbinger products' }) async getHarbingerProducts() { return this.harbingerService.fetchProducts() } @Get('lima/products') @ApiResponse({ status: 200, description: 'Returns the list of Lima products' }) async getLimaProducts() { return this.limaService.fetchProducts() } @Get('bindle/products') @ApiResponse({ status: 200, description: 'Returns the list of Bindle products' }) async getBindleProducts() { return this.bindleService.fetchProducts() } @Get('beans') @ApiResponse({ status: 200, description: 'Returns the list of coffee bean products from all suppliers' }) async getBeans() { return this.focoCoffeeService.getBeans() } @Get('products') @ApiResponse({ status: 200, description: 'Returns the list of all products from all suppliers' }) async getAllProducts() { return this.focoCoffeeService.getAllProducts() } }