From 2da33408934cdc6affd32b15576827a7991b9100 Mon Sep 17 00:00:00 2001 From: Daniel Vinicius Alves Date: Mon, 5 Aug 2024 17:56:59 -0300 Subject: [PATCH] =?UTF-8?q?feature[Contract]:=20Adiciona=20endpoint=20de?= =?UTF-8?q?=20relat=C3=B3rios=20por=20contrato.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs: #28 --- src/controllers/Report.controller.ts | 8 ++++---- src/repository/Impressora.repository.ts | 14 ++++++++++++++ src/routes/report.route.ts | 2 +- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/controllers/Report.controller.ts b/src/controllers/Report.controller.ts index 3f22668..4d1543b 100644 --- a/src/controllers/Report.controller.ts +++ b/src/controllers/Report.controller.ts @@ -1,15 +1,15 @@ import { Request, Response } from 'express'; -import { listImpressorasRelatorio, findImpressoraWithReport } from '../repository/Impressora.repository' +import { listImpressorasContract, findImpressoraWithReport } from '../repository/Impressora.repository' import { generateReport, generateMonthReport, createPdf } from '../usecases/report/generate.report' import { Impressora } from '../types/Impressora.type' import fs from 'fs'; -import { updateReport } from '../usecases/report/update.report'; export default { - async listImpressorasReports(request: Request, response: Response) { + async listImpressorasContractReports(request: Request, response: Response) { try { - let result = await listImpressorasRelatorio(); + const contractId: string = request.params.contractId as string; + const result: Impressora[] | false = await listImpressorasContract(contractId); if (!result) { return response.status(500).json({ message: 'Erro: Não foi possível listar impressoras.', diff --git a/src/repository/Impressora.repository.ts b/src/repository/Impressora.repository.ts index fbf2547..46c9384 100644 --- a/src/repository/Impressora.repository.ts +++ b/src/repository/Impressora.repository.ts @@ -31,6 +31,20 @@ export const listImpressorasRelatorio = async (): Promise } } +export const listImpressorasContract = async (contractId: string): Promise => { + try { + const impressoras = await impressoraClient.findMany({ + where: { + numContrato: contractId, + }, + }); + return impressoras; + } catch (error) { + console.error("Erro ao procurar impressoras: ", error); + return false; + } +} + export const findImpressora = async (id: number): Promise => { try { const impressora = await impressoraClient.findUnique({ where: { id } }); diff --git a/src/routes/report.route.ts b/src/routes/report.route.ts index 5afae12..066cabe 100644 --- a/src/routes/report.route.ts +++ b/src/routes/report.route.ts @@ -4,7 +4,7 @@ import { requestHandler } from '../middlewares/requestWrapper.adapter'; const reportRoutes = Router(); -reportRoutes.get('/', requestHandler(ReportController.listImpressorasReports)); +reportRoutes.get('/contract/:contractId', requestHandler(ReportController.listImpressorasContractReports)); reportRoutes.get('/:id', requestHandler(ReportController.retrieveReport)); reportRoutes.get('/month/:id', requestHandler(ReportController.retrieveMonthReport));