@vidisoft/agendateapp-codes 1.0.6 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +65 -60
  2. package/index.js +4 -4
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1,90 +1,95 @@
1
- # @agendateapp/agendateapp-codes
1
+ # @vidisoft/agendateapp-codes
2
2
 
3
- Este proyecto contiene una lista centralizada de códigos y mensajes que son manejados por las diferentes aplicaciones de la plataforma AgendateApp.
3
+ Lista centralizada de códigos y mensajes usados por los microservicios de AgendateApp.
4
4
 
5
- ## Estructura del Proyecto
5
+ ## Estructura
6
6
 
7
- El archivo principal es `index.js`, donde se definen los códigos y mensajes que serán utilizados en todas las aplicaciones.
7
+ El archivo principal es `index.js`. Cada código expone:
8
+
9
+ | Campo | Descripción | Ejemplo |
10
+ |-------|-------------|---------|
11
+ | `code` | Código HTTP lógico de la respuesta | `202`, `500` |
12
+ | `name` | Identificador del código | `W-025` |
13
+ | `message` | Mensaje (puede usar `{0}`, `{1}`, …) | `Required field: {0}` |
8
14
 
9
15
  ```javascript
10
- /**
11
- * Code enum for messages.
12
- * @module lang
13
- * @author VACR
14
- * @copyright (c) 2024 AgendateApp
15
- */
16
-
17
- const messages = {
18
- E_001: { status: 401, id: 'E-001', message: 'Token is required' },
19
- // ... otros mensajes
20
- };
21
-
22
- module.exports = messages;
16
+ // Ejemplo de entrada en index.js
17
+ W_025: {
18
+ code: 202,
19
+ name: 'W-025',
20
+ message: 'Field {0} requires at least {1} characters. El campo {0} requiere al menos {1} caracteres.'
21
+ }
23
22
  ```
24
- ## Publicación del Paquete
25
- Para distribuir este paquete a los diferentes proyectos de AgendateApp, puedes usar npm pack para empaquetarlo y luego instalarlo en los proyectos que lo necesiten.
26
23
 
27
- ### Paso 1: Empaquetar el Paquete o generar link
28
- Navega a la carpeta del proyecto @agendateapp/agendateapp-codes y ejecuta:
24
+ ## Uso en un microservicio
29
25
 
30
- ```bash
31
- npm pack
32
- # ó
33
- npm link
26
+ ```javascript
27
+ import code from '@vidisoft/agendateapp-codes'
28
+
29
+ // Acceso directo
30
+ console.log(code.G_200.message) // "Successful"
31
+
32
+ // Con placeholders (en el consumidor)
33
+ const msg = code.W_025.message.replace('{0}', 'detalle').replace('{1}', '10')
34
34
  ```
35
- Este comando generará un archivo .tgz en la carpeta del proyecto, que es el archivo empaquetado que se puede instalar en otros proyectos.
36
35
 
37
- ## Tres opciones de uso
36
+ ## Publicar una nueva versión
38
37
 
39
- ## Opción 1
40
- ### Paso 2: Instalar el Paquete en Otros Proyectos
41
- En cada proyecto que necesite utilizar los códigos y mensajes, sigue los siguientes pasos:
38
+ La publicación en npm la realiza el mantenedor del paquete.
42
39
 
43
- Copiar el archivo empaquetado: Copia el archivo .tgz generado en el paso anterior al directorio de tu proyecto local.
40
+ 1. Editar `index.js` con los códigos nuevos o cambios de mensaje.
41
+ 2. Incrementar la versión en `package.json` (semver: patch para mensajes, minor si añades códigos compatibles).
42
+ 3. Desde la carpeta `agendateapp-codes`:
44
43
 
45
- Instalar el paquete: Desde la raíz del proyecto, ejecuta:
44
+ ```bash
45
+ npm login # si la sesión expiró
46
+ npm publish --access public
47
+ ```
48
+
49
+ 4. Comprobar:
46
50
 
47
51
  ```bash
48
- npm install ./ruta/al/archivo/@agendateapp-agendateapp-codes-1.0.0.tgz
52
+ npm view @vidisoft/agendateapp-codes version
49
53
  ```
50
- Esto instalará el paquete @agendateapp/agendateapp-codes como una dependencia local del proyecto.
51
54
 
52
- ### Paso 3: Uso del Paquete en Proyecto
53
- Una vez instalado, puedes importar y usar los códigos y mensajes en tu aplicación de la siguiente manera:
55
+ ## Actualizar en los proyectos consumidores
54
56
 
55
- ```javascript
56
- const messages = require('@agendateapp/agendateapp-codes');
57
+ En **agendateapp.main**, **agendateapp.otp**, **agendateapp.files** y **agendateapp.notification**, declarar la dependencia con caret (igual que el resto de paquetes):
57
58
 
58
- console.log(messages.E_001.message); // "Token is required"
59
+ ```json
60
+ "@vidisoft/agendateapp-codes": "^1.0.6"
59
61
  ```
60
62
 
61
- ## Opción 2
62
- ### Paso 2: Copiar comprimido al proyecto donde se usará
63
+ Luego en cada proyecto:
63
64
 
64
65
  ```bash
65
- # Pasar a proyecto de main siempre teniendo en cuenta la versión del comprimido "X"
66
- cp agendateapp-agendateapp-codes-1.0.X.tgz ../agendateapp.main/
66
+ npm install
67
67
  ```
68
68
 
69
- ### Paso 3: En el proyecto destino, volver a instalarlo
70
- ```bash
71
- # Pasar a proyecto de main
72
- cp agendateapp-agendateapp-codes-1.0.X.tgz ../agendateapp.main/
69
+ El `package-lock.json` debe resolver desde `https://registry.npmjs.org/`, no desde rutas `file:` locales.
73
70
 
74
- # En proyecto destino cambiar en el package.json el archivo y omitir el antiguo
75
- npm i
76
- ```
71
+ ## Changelog reciente
72
+
73
+ ### 1.0.7
74
+
75
+ - **W_027**: sin relación conductor–vehículo para los ids enviados (`{0}` = id enviado, `{1}` = vehículo).
76
+ - **W_028**: relación encontrada pero no se pudo eliminar (`{0}` = id registro Conductores).
77
+ - **W_029**: conductores encontrados en el vehículo; requiere `force:true` (`{0}` = cantidad).
78
+ - **W_030**: ningún conductor vinculado al vehículo (`{0}` = id vehículo).
79
+
80
+ ### 1.0.6
81
+
82
+ - **W_025**: longitud mínima de campo (`{0}` = campo, `{1}` = mínimo).
83
+ - **W_026**: longitud máxima de campo.
84
+ - **W_023** / **W_024**: mensajes por defecto documentados (conflictos de placa/propietario en registro).
85
+
86
+ ## Prueba local (opcional)
87
+
88
+ Solo para desarrollo sin publicar aún:
77
89
 
78
- ## Opción 3
79
- ### Paso 2: En la carpeta destino ejecutar
80
- ```bash
81
- npm link @agendateapp/agendateapp-codes
82
- ```
83
- ### Paso 3: Para docker
84
90
  ```bash
85
- # Usa en el dockerfile
86
- COPY ../agendateapp-codes ./node_modules/@agendateapp/agendateapp-codes
91
+ npm pack
92
+ npm install ./vidisoft-agendateapp-codes-X.Y.Z.tgz
87
93
  ```
88
94
 
89
- ## Contribuir
90
- Si necesitas agregar o modificar algún mensaje, realiza los cambios necesarios en el archivo index.js, y luego sigue el proceso de empaquetado e instalación en los demás proyectos.
95
+ En producción y Docker se usa siempre la versión publicada en npm con `^` en `package.json`.
package/index.js CHANGED
@@ -82,10 +82,10 @@ const messages = {
82
82
  W_024: { code: 202, name: 'W-024', message: 'Vehicle plate belongs to another owner. La placa pertenece a un vehículo de otro propietario.' },
83
83
  W_025: { code: 202, name: 'W-025', message: 'Field {0} requires at least {1} characters. El campo {0} requiere al menos {1} caracteres.' },
84
84
  W_026: { code: 202, name: 'W-026', message: 'Field {0} cannot exceed {1} characters. El campo {0} no puede superar {1} caracteres.' },
85
- W_027: { code: 202, name: 'W-027', message: '' },
86
- W_028: { code: 202, name: 'W-028', message: '' },
87
- W_029: { code: 202, name: 'W-029', message: '' },
88
- W_030: { code: 202, name: 'W-030', message: '' },
85
+ W_027: { code: 202, name: 'W-027', message: 'No driver-vehicle relation for id {0} and vehicle {1}. No existe relación conductor-vehículo para el id {0} y el vehículo {1}.' },
86
+ W_028: { code: 202, name: 'W-028', message: 'Could not remove driver relation {0}. No se pudo eliminar la relación del conductor {0}.' },
87
+ W_029: { code: 202, name: 'W-029', message: 'Found {0} driver(s) for this vehicle. Use force:true to disconnect. Se encontraron {0} conductor(es) para este vehículo. Use force:true para desvincular.' },
88
+ W_030: { code: 202, name: 'W-030', message: 'No drivers linked to vehicle {0}. No hay conductores vinculados al vehículo {0}.' },
89
89
  W_031: { code: 202, name: 'W-031', message: '' },
90
90
  W_032: { code: 202, name: 'W-032', message: '' },
91
91
  W_033: { code: 202, name: 'W-033', message: '' },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vidisoft/agendateapp-codes",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "Codigos de aplicación",
5
5
  "main": "index.js",
6
6
  "scripts": {