From 3121b51c31866db0e98096cf95dcdf17513b8eb6 Mon Sep 17 00:00:00 2001 From: Lucas Vaz Date: Wed, 4 Feb 2026 00:15:13 -0300 Subject: [PATCH 1/2] adiciona rota para listar tombos por identificador --- src/controllers/tombos-controller.js | 51 ++++++++++++++++++++++++++++ src/routes/tombos.js | 8 ++++- 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/src/controllers/tombos-controller.js b/src/controllers/tombos-controller.js index a9ed0db5..9c05379d 100644 --- a/src/controllers/tombos-controller.js +++ b/src/controllers/tombos-controller.js @@ -763,6 +763,57 @@ export const listagem = (request, response, next) => { .catch(next); }; +export async function listagemTombosPorIdentificador(request, response, next) { + try { + const { pagina, limite, offset } = request.paginacao; + const { identificador_id } = request.params; + + const retorno = { + metadados: { total: 0, pagina, limite }, + tombos: [], + }; + + const result = await Tombo.findAndCountAll({ + distinct: true, // importante por causa do join N:N + attributes: [ + "hcf", + "nomes_populares", + "nome_cientifico", + "data_coleta_dia", + "data_coleta_mes", + "data_coleta_ano", + "created_at", + ], + include: [ + { + model: Identificador, + as: "identificadores", + attributes: [], + through: { attributes: [] }, + where: { id: identificador_id }, + required: true, + }, + { + model: Coletor, + attributes: ["id", "nome"], + required: false, + }, + ], + order: [["hcf", "DESC"]], + limit: limite, + offset, + subQuery: false, + }); + + retorno.metadados.total = result.count; + retorno.tombos = result.rows; + + return response.status(codigos.LISTAGEM).json(retorno); + } catch (error) { + return next(error); + } +} + export const getDadosCadTombo = (request, response, next) => { const retorno = {}; const callback = transaction => Promise.resolve() diff --git a/src/routes/tombos.js b/src/routes/tombos.js index 87422639..02354c7d 100644 --- a/src/routes/tombos.js +++ b/src/routes/tombos.js @@ -8,7 +8,7 @@ import { desativar, obterTombo, cadastrarTipo, buscarTipos, cadastrarColetores, buscarColetores, alteracao, getNumeroColetor, getUltimoNumeroTombo, getCodigoBarraTombo, editarCodigoBarra, getUltimoNumeroCodigoBarras, postCodigoBarraTombo, - getUltimoCodigoBarra, deletarCodigoBarras, + getUltimoCodigoBarra, deletarCodigoBarras,listagemTombosPorIdentificador } from '../controllers/tombos-controller'; import exportarTombosController from '../controllers/tombos-exportacoes-controller'; import criaJsonMiddleware from '../middlewares/json-middleware'; @@ -740,6 +740,12 @@ export default app => { obterTombo, ]); + app.route('/tombos/identificadores/:identificador_id') + .get([ + listagensMiddleware, + listagemTombosPorIdentificador, + ]); + /** * @swagger * /tipos: From 0346d5e792c798ce88c985d4edc61417cdecf27f Mon Sep 17 00:00:00 2001 From: Edvaldo Szymonek Date: Tue, 10 Feb 2026 22:19:28 -0300 Subject: [PATCH 2/2] corrige erros de lint --- src/controllers/tombos-controller.js | 92 ++++++++++++++-------------- src/routes/tombos.js | 2 +- 2 files changed, 47 insertions(+), 47 deletions(-) diff --git a/src/controllers/tombos-controller.js b/src/controllers/tombos-controller.js index 9c05379d..d010466d 100644 --- a/src/controllers/tombos-controller.js +++ b/src/controllers/tombos-controller.js @@ -764,54 +764,54 @@ export const listagem = (request, response, next) => { }; export async function listagemTombosPorIdentificador(request, response, next) { - try { - const { pagina, limite, offset } = request.paginacao; - const { identificador_id } = request.params; + try { + const { pagina, limite, offset } = request.paginacao; + const { identificador_id } = request.params; - const retorno = { - metadados: { total: 0, pagina, limite }, - tombos: [], - }; + const retorno = { + metadados: { total: 0, pagina, limite }, + tombos: [], + }; - const result = await Tombo.findAndCountAll({ - distinct: true, // importante por causa do join N:N - attributes: [ - "hcf", - "nomes_populares", - "nome_cientifico", - "data_coleta_dia", - "data_coleta_mes", - "data_coleta_ano", - "created_at", - ], - include: [ - { - model: Identificador, - as: "identificadores", - attributes: [], - through: { attributes: [] }, - where: { id: identificador_id }, - required: true, - }, - { - model: Coletor, - attributes: ["id", "nome"], - required: false, - }, - ], - order: [["hcf", "DESC"]], - limit: limite, - offset, - subQuery: false, - }); - - retorno.metadados.total = result.count; - retorno.tombos = result.rows; - - return response.status(codigos.LISTAGEM).json(retorno); - } catch (error) { - return next(error); - } + const result = await Tombo.findAndCountAll({ + distinct: true, // importante por causa do join N:N + attributes: [ + 'hcf', + 'nomes_populares', + 'nome_cientifico', + 'data_coleta_dia', + 'data_coleta_mes', + 'data_coleta_ano', + 'created_at', + ], + include: [ + { + model: Identificador, + as: 'identificadores', + attributes: [], + through: { attributes: [] }, + where: { id: identificador_id }, + required: true, + }, + { + model: Coletor, + attributes: ['id', 'nome'], + required: false, + }, + ], + order: [['hcf', 'DESC']], + limit: limite, + offset, + subQuery: false, + }); + + retorno.metadados.total = result.count; + retorno.tombos = result.rows; + + return response.status(codigos.LISTAGEM).json(retorno); + } catch (error) { + return next(error); + } } export const getDadosCadTombo = (request, response, next) => { diff --git a/src/routes/tombos.js b/src/routes/tombos.js index 02354c7d..2120a497 100644 --- a/src/routes/tombos.js +++ b/src/routes/tombos.js @@ -8,7 +8,7 @@ import { desativar, obterTombo, cadastrarTipo, buscarTipos, cadastrarColetores, buscarColetores, alteracao, getNumeroColetor, getUltimoNumeroTombo, getCodigoBarraTombo, editarCodigoBarra, getUltimoNumeroCodigoBarras, postCodigoBarraTombo, - getUltimoCodigoBarra, deletarCodigoBarras,listagemTombosPorIdentificador + getUltimoCodigoBarra, deletarCodigoBarras, listagemTombosPorIdentificador, } from '../controllers/tombos-controller'; import exportarTombosController from '../controllers/tombos-exportacoes-controller'; import criaJsonMiddleware from '../middlewares/json-middleware';