From 6a645d7886daa0d032e6dcd1519b31e0a5110544 Mon Sep 17 00:00:00 2001 From: nicolasarana <90768149+nicolasarana@users.noreply.github.com> Date: Tue, 27 Jan 2026 10:26:58 -0300 Subject: [PATCH] =?UTF-8?q?feat(RUP):"Implementar=20elementoRUP=20para=20c?= =?UTF-8?q?ampo=20autonum=C3=A9rico"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/constantes/constantes.routes.ts | 26 ++++++++++++++++++++++++- modules/constantes/constantes.schema.ts | 5 +++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/modules/constantes/constantes.routes.ts b/modules/constantes/constantes.routes.ts index a91a5792f6..69ca1048dd 100644 --- a/modules/constantes/constantes.routes.ts +++ b/modules/constantes/constantes.routes.ts @@ -1,4 +1,5 @@ import { MongoQuery, ResourceBase } from '@andes/core'; +import { Request, Response } from '@andes/api-tool'; import { Auth } from '../../auth/auth.class'; import { Constantes } from './constantes.schema'; @@ -6,13 +7,36 @@ class ConstantesController extends ResourceBase { Model = Constantes; resourceName = 'constantes'; middlewares = [Auth.authenticate()]; - routesEnable = ['get', 'search']; + routesEnable = ['get', 'search', 'put']; searchFileds = { key: MongoQuery.equalMatch, nombre: MongoQuery.partialString, source: MongoQuery.equalMatch, type: MongoQuery.equalMatch }; + extrasRoutes = [ + { + path: 'next/:source', + callback: 'next' + } + ]; + + public async next(this: ConstantesController, req: Request, res: Response) { + try { + const source = req.params.source; + const constante = await Constantes.findOneAndUpdate( + { source }, + { $inc: { valor: 1 } }, + { new: true, upsert: false } + ); + if (!constante) { + return res.status(404).json({ message: 'Constante no encontrada' }); + } + return res.json(constante); + } catch (err) { + return res.status(500).json(err); + } + } } export const ConstantesCtr = new ConstantesController({}); diff --git a/modules/constantes/constantes.schema.ts b/modules/constantes/constantes.schema.ts index 16339a6255..64c3d6acdc 100644 --- a/modules/constantes/constantes.schema.ts +++ b/modules/constantes/constantes.schema.ts @@ -14,12 +14,17 @@ export const ConstantesSchema = new mongoose.Schema({ key: String, nombre: String, source: String, + valor: { + type: Number, + default: 0 + }, type: { type: String, enum: ['text', 'number'] } }); + export const Constantes: Model = mongoose.model( 'constantes', ConstantesSchema,