@vidisoft/agendateapp-codes 1.0.6 → 1.0.8
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.
- package/README.md +65 -60
- package/index.js +10 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,90 +1,95 @@
|
|
|
1
|
-
# @
|
|
1
|
+
# @vidisoft/agendateapp-codes
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Lista centralizada de códigos y mensajes usados por los microservicios de AgendateApp.
|
|
4
4
|
|
|
5
|
-
## Estructura
|
|
5
|
+
## Estructura
|
|
6
6
|
|
|
7
|
-
El archivo principal es `index.js
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
28
|
-
Navega a la carpeta del proyecto @agendateapp/agendateapp-codes y ejecuta:
|
|
24
|
+
## Uso en un microservicio
|
|
29
25
|
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
##
|
|
36
|
+
## Publicar una nueva versión
|
|
38
37
|
|
|
39
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
59
|
+
```json
|
|
60
|
+
"@vidisoft/agendateapp-codes": "^1.0.6"
|
|
59
61
|
```
|
|
60
62
|
|
|
61
|
-
|
|
62
|
-
### Paso 2: Copiar comprimido al proyecto donde se usará
|
|
63
|
+
Luego en cada proyecto:
|
|
63
64
|
|
|
64
65
|
```bash
|
|
65
|
-
|
|
66
|
-
cp agendateapp-agendateapp-codes-1.0.X.tgz ../agendateapp.main/
|
|
66
|
+
npm install
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
-
|
|
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
|
-
|
|
75
|
-
|
|
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
|
-
|
|
86
|
-
|
|
91
|
+
npm pack
|
|
92
|
+
npm install ./vidisoft-agendateapp-codes-X.Y.Z.tgz
|
|
87
93
|
```
|
|
88
94
|
|
|
89
|
-
|
|
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: '' },
|
|
@@ -102,6 +102,12 @@ const messages = {
|
|
|
102
102
|
W_044: { code: 202, name: 'W-044', message: '' },
|
|
103
103
|
W_045: { code: 202, name: 'W-045', message: '' },
|
|
104
104
|
|
|
105
|
+
W_VDA_001: { code: 202, name: 'W-VDA-001', message: 'Tipo de documento duplicado: {0}' },
|
|
106
|
+
W_VDA_002: { code: 202, name: 'W-VDA-002', message: 'Días de aviso inválidos: {0}' },
|
|
107
|
+
W_VDA_003: { code: 202, name: 'W-VDA-003', message: 'Debe seleccionar al menos un destinatario' },
|
|
108
|
+
W_VDA_004: { code: 202, name: 'W-VDA-004', message: 'Debe seleccionar al menos un canal' },
|
|
109
|
+
W_VDA_005: { code: 202, name: 'W-VDA-005', message: 'Canal no incluido en el plan: {0}' },
|
|
110
|
+
|
|
105
111
|
G_200: { code: 200, name: 'G-200', message: 'Successful' },
|
|
106
112
|
G_404: { code: 404, name: 'G-404', message: 'No information associated with the supplied parameters was found' }
|
|
107
113
|
}
|