fix: corrige erros do ESLint e configura variáveis globais
- Adiciona variáveis globais do Node.js (process, console, __dirname, require, module, exports) - Adiciona variáveis globais do Jest (describe, it, beforeEach, fail, etc.) - Configura ESLint para arquivos JavaScript de configuração - Remove diretivas eslint-disable não utilizadas - Corrige variáveis não usadas prefixando com _ - Ajusta regras do ESLint para ignorar variáveis que começam com _ - Formata código com Prettier
This commit is contained in:
@@ -1,21 +1,33 @@
|
||||
/* eslint-disable prettier/prettier */
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars */
|
||||
|
||||
import { Body, Controller, Get, Param, Post, Query, UseGuards } from '@nestjs/common';
|
||||
import {
|
||||
Body,
|
||||
Controller,
|
||||
Get,
|
||||
Param,
|
||||
Post,
|
||||
Query,
|
||||
// UseGuards, // Comentado para uso futuro
|
||||
} from '@nestjs/common';
|
||||
import { ProductsService } from './products.service';
|
||||
import { ExposedProduct } from 'src/core/models/exposed-product.model';
|
||||
import { JwtAuthGuard } from 'src/auth/guards/jwt-auth.guard';
|
||||
// import { JwtAuthGuard } from 'src/auth/guards/jwt-auth.guard'; // Comentado para uso futuro
|
||||
import { ExposedProductDto } from './dto/exposed-product.dto';
|
||||
import { ProductValidationDto } from './dto/ProductValidationDto';
|
||||
import { ProductEcommerceDto } from './dto/product-ecommerce.dto';
|
||||
import { ApiTags, ApiOperation, ApiParam, ApiQuery, ApiBody, ApiResponse, ApiBearerAuth } from '@nestjs/swagger';
|
||||
import {
|
||||
ApiTags,
|
||||
ApiOperation,
|
||||
ApiParam,
|
||||
ApiQuery,
|
||||
ApiBody,
|
||||
ApiResponse,
|
||||
// ApiBearerAuth, // Comentado para uso futuro
|
||||
} from '@nestjs/swagger';
|
||||
import { ProductDetailQueryDto } from './dto/product-detail-query.dto';
|
||||
import { ProductDetailResponseDto } from './dto/product-detail-response.dto';
|
||||
import { RotinaA4QueryDto } from './dto/rotina-a4-query.dto';
|
||||
import { RotinaA4ResponseDto } from './dto/rotina-a4-response.dto';
|
||||
import { UnifiedProductSearchDto } from './dto/unified-product-search.dto';
|
||||
|
||||
|
||||
//@ApiBearerAuth()
|
||||
//@UseGuards(JwtAuthGuard)
|
||||
@ApiTags('Produtos')
|
||||
@@ -23,43 +35,57 @@ import { UnifiedProductSearchDto } from './dto/unified-product-search.dto';
|
||||
export class ProductsController {
|
||||
constructor(private readonly productsService: ProductsService) {}
|
||||
|
||||
///enpoit produtos-ecommecer
|
||||
///enpoit produtos-ecommecer
|
||||
@Get('products-ecommerce')
|
||||
@ApiOperation({ summary: 'Lista produtos para o e-commerce' })
|
||||
@ApiResponse({
|
||||
status: 200,
|
||||
@ApiResponse({
|
||||
status: 200,
|
||||
description: 'Lista de produtos retornada com sucesso.',
|
||||
type: ProductEcommerceDto,
|
||||
isArray: true
|
||||
isArray: true,
|
||||
})
|
||||
|
||||
///ENDPOIT DE VALIDAR PRODUTO POR FILTRO
|
||||
@Get('product-validation/:storeId/:filtro')
|
||||
@ApiOperation({ summary: 'Valida produto pelo filtro (código, EAN ou descrição)' })
|
||||
@ApiOperation({
|
||||
summary: 'Valida produto pelo filtro (código, EAN ou descrição)',
|
||||
})
|
||||
@ApiParam({ name: 'storeId', type: String, description: 'ID da loja' })
|
||||
@ApiParam({ name: 'filtro', type: String, description: 'Filtro de busca (código, EAN ou descrição)' })
|
||||
@ApiQuery({ name: 'tipoBusca', required: false, enum: ['codauxiliar', 'codprod', 'descricao', 'todos'], description: 'Tipo de busca específica (opcional). Padrão: busca em todos os campos' })
|
||||
@ApiResponse({
|
||||
status: 200,
|
||||
description: 'Produto encontrado com sucesso.',
|
||||
type: ProductValidationDto
|
||||
@ApiParam({
|
||||
name: 'filtro',
|
||||
type: String,
|
||||
description: 'Filtro de busca (código, EAN ou descrição)',
|
||||
})
|
||||
@ApiQuery({
|
||||
name: 'tipoBusca',
|
||||
required: false,
|
||||
enum: ['codauxiliar', 'codprod', 'descricao', 'todos'],
|
||||
description:
|
||||
'Tipo de busca específica (opcional). Padrão: busca em todos os campos',
|
||||
})
|
||||
@ApiResponse({
|
||||
status: 200,
|
||||
description: 'Produto encontrado com sucesso.',
|
||||
type: ProductValidationDto,
|
||||
})
|
||||
@ApiResponse({ status: 404, description: 'Produto não localizado.' })
|
||||
async productValidation(
|
||||
@Param('storeId') storeId: string,
|
||||
@Param('filtro') filtro: string,
|
||||
@Query('tipoBusca') tipoBusca?: 'codauxiliar' | 'codprod' | 'descricao' | 'todos',
|
||||
@Query('tipoBusca')
|
||||
tipoBusca?: 'codauxiliar' | 'codprod' | 'descricao' | 'todos',
|
||||
): Promise<ProductValidationDto> {
|
||||
return this.productsService.productsValidation(storeId, filtro, tipoBusca);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// ENDPOIT PRODUTOS EXPOSTOS
|
||||
/// ENDPOIT PRODUTOS EXPOSTOS
|
||||
@Post('exposed-product')
|
||||
@ApiOperation({ summary: 'Registra produto em exposição' })
|
||||
@ApiBody({ type: ExposedProductDto })
|
||||
@ApiResponse({ status: 201, description: 'Produto exposto registrado com sucesso.' })
|
||||
@ApiResponse({
|
||||
status: 201,
|
||||
description: 'Produto exposto registrado com sucesso.',
|
||||
})
|
||||
async exposedProduct(@Body() exposedProduct: ExposedProduct) {
|
||||
return this.productsService.exposedProduct(exposedProduct);
|
||||
}
|
||||
@@ -70,14 +96,16 @@ export class ProductsController {
|
||||
@Post('product-details')
|
||||
@ApiOperation({ summary: 'Busca detalhes de produtos com preço e estoque' })
|
||||
@ApiBody({ type: ProductDetailQueryDto })
|
||||
@ApiResponse({
|
||||
status: 200,
|
||||
description: 'Lista de produtos com detalhes retornada com sucesso.',
|
||||
@ApiResponse({
|
||||
status: 200,
|
||||
description: 'Lista de produtos com detalhes retornada com sucesso.',
|
||||
type: ProductDetailResponseDto,
|
||||
isArray: true
|
||||
isArray: true,
|
||||
})
|
||||
@ApiResponse({ status: 400, description: 'Parâmetros inválidos.' })
|
||||
async getProductDetails(@Body() query: ProductDetailQueryDto): Promise<ProductDetailResponseDto[]> {
|
||||
async getProductDetails(
|
||||
@Body() query: ProductDetailQueryDto,
|
||||
): Promise<ProductDetailResponseDto[]> {
|
||||
return this.productsService.getProductDetails(query);
|
||||
}
|
||||
|
||||
@@ -87,13 +115,18 @@ export class ProductsController {
|
||||
@Post('rotina-A4')
|
||||
@ApiOperation({ summary: 'Busca informações do produto conforme rotina A4' })
|
||||
@ApiBody({ type: RotinaA4QueryDto })
|
||||
@ApiResponse({
|
||||
status: 200,
|
||||
description: 'Dados do produto retornados com sucesso.',
|
||||
type: RotinaA4ResponseDto
|
||||
@ApiResponse({
|
||||
status: 200,
|
||||
description: 'Dados do produto retornados com sucesso.',
|
||||
type: RotinaA4ResponseDto,
|
||||
})
|
||||
@ApiResponse({ status: 404, description: 'Produto não encontrado para os parâmetros informados.' })
|
||||
async getRotinaA4(@Body() query: RotinaA4QueryDto): Promise<RotinaA4ResponseDto> {
|
||||
@ApiResponse({
|
||||
status: 404,
|
||||
description: 'Produto não encontrado para os parâmetros informados.',
|
||||
})
|
||||
async getRotinaA4(
|
||||
@Body() query: RotinaA4QueryDto,
|
||||
): Promise<RotinaA4ResponseDto> {
|
||||
return this.productsService.getRotinaA4(query);
|
||||
}
|
||||
|
||||
@@ -101,16 +134,21 @@ export class ProductsController {
|
||||
* Endpoint para busca unificada de produtos por nome, código de barras ou codprod
|
||||
*/
|
||||
@Post('unified-search')
|
||||
@ApiOperation({ summary: 'Busca unificada de produtos por nome, código de barras ou codprod' })
|
||||
@ApiOperation({
|
||||
summary:
|
||||
'Busca unificada de produtos por nome, código de barras ou codprod',
|
||||
})
|
||||
@ApiBody({ type: UnifiedProductSearchDto })
|
||||
@ApiResponse({
|
||||
status: 200,
|
||||
description: 'Lista de produtos encontrados retornada com sucesso.',
|
||||
@ApiResponse({
|
||||
status: 200,
|
||||
description: 'Lista de produtos encontrados retornada com sucesso.',
|
||||
type: ProductDetailResponseDto,
|
||||
isArray: true
|
||||
isArray: true,
|
||||
})
|
||||
@ApiResponse({ status: 400, description: 'Parâmetros inválidos.' })
|
||||
async unifiedProductSearch(@Body() query: UnifiedProductSearchDto): Promise<ProductDetailResponseDto[]> {
|
||||
async unifiedProductSearch(
|
||||
@Body() query: UnifiedProductSearchDto,
|
||||
): Promise<ProductDetailResponseDto[]> {
|
||||
return this.productsService.unifiedProductSearch(query);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user