From 58e44fa455b29aa221e0df7d0972a42f06f2b69f Mon Sep 17 00:00:00 2001 From: Moran Date: Mon, 2 Mar 2026 14:25:35 -0300 Subject: [PATCH] =?UTF-8?q?incremento=20do=20numero=20da=20coleta=20agora?= =?UTF-8?q?=20=C3=A9=20feito=20na=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/tombos-controller.js | 15 ++++++++++----- src/routes/tombos.js | 18 +++++++----------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/controllers/tombos-controller.js b/src/controllers/tombos-controller.js index 6059717..52293f2 100644 --- a/src/controllers/tombos-controller.js +++ b/src/controllers/tombos-controller.js @@ -17,7 +17,7 @@ import { aprovarPendencia } from './pendencias-controller'; const { Solo, Relevo, Cidade, Estado, Vegetacao, FaseSucessional, Pais, Tipo, LocalColeta, Familia, sequelize, Genero, Subfamilia, Autor, Coletor, Variedade, Subespecie, TomboFoto, Identificador, - ColecaoAnexa, Especie, Herbario, Tombo, Alteracao, TomboIdentificador, ColetorComplementar, Sequelize: { Op }, + ColecaoAnexa, Especie, Herbario, Tombo, Alteracao, TomboIdentificador, ColetorComplementar, Sequelize: { Op, fn, col }, } = models; function parseDataTombo(valor) { @@ -1551,15 +1551,20 @@ export const getNumeroColetor = (request, response, next) => { Promise.resolve() .then(() => - Tombo.findAll({ + Tombo.findOne({ where: { coletor_id: idColetor, }, - attributes: ['hcf', 'numero_coleta'], + attributes: [ + [fn('MAX', col('numero_coleta')), 'max_numero_coleta'], + ], + raw: true, }), ) - .then(tombos => { - response.status(codigos.BUSCAR_UM_ITEM).json(tombos); + .then(resultado => { + const maxNumero = resultado?.max_numero_coleta; + const proximoNumero = maxNumero ? Number(maxNumero) + 1 : 1; + response.status(codigos.BUSCAR_UM_ITEM).json({ proximo_numero_coleta: proximoNumero }); }) .catch(next); }; diff --git a/src/routes/tombos.js b/src/routes/tombos.js index e1006ab..114938d 100644 --- a/src/routes/tombos.js +++ b/src/routes/tombos.js @@ -76,7 +76,7 @@ export default app => { * @swagger * /tombos/numeroColetor/{idColetor}: * get: - * summary: Obtém o número do coletor pelo ID + * summary: Obtém o próximo número de coleta do coletor * tags: [Tombos] * parameters: * - in: path @@ -87,19 +87,15 @@ export default app => { * description: ID do coletor * responses: * 200: - * description: Lista de HCF e números de coleta retornada com sucesso + * description: Próximo número de coleta retornado com sucesso * content: * application/json: * schema: - * type: array - * items: - * type: object - * properties: - * hcf: - * type: integer - * numero_coleta: - * type: integer - * nullable: true + * type: object + * properties: + * proximo_numero_coleta: + * type: integer + * description: Próximo número de coleta disponível (MAX + 1) * '404': * $ref: '#/components/responses/NotFound' * '500':