@vidisoft/agendateapp-codes 1.0.5 → 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.
- package/README.md +65 -60
- package/index.js +15 -15
- 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
|
@@ -34,9 +34,9 @@ const messages = {
|
|
|
34
34
|
E_027: { code: 500, name: 'E-027', message: 'Attachment processing failed' },
|
|
35
35
|
E_028: { code: 500, name: 'E-028', message: 'Error sending socket message' },
|
|
36
36
|
E_029: { code: 500, name: 'E-029', message: 'Error broadcasting socket message' },
|
|
37
|
-
E_030: { code: 500, name: 'E-030', message: '' },
|
|
38
|
-
E_031: { code: 500, name: 'E-031', message: '' },
|
|
39
|
-
E_032: { code: 500, name: 'E-032', message: '' },
|
|
37
|
+
E_030: { code: 500, name: 'E-030', message: 'Tipo de alquiler no válido' },
|
|
38
|
+
E_031: { code: 500, name: 'E-031', message: 'Usuario no encontrado' },
|
|
39
|
+
E_032: { code: 500, name: 'E-032', message: 'Error al listar alquileres' },
|
|
40
40
|
E_033: { code: 500, name: 'E-033', message: '' },
|
|
41
41
|
E_034: { code: 500, name: 'E-034', message: '' },
|
|
42
42
|
E_035: { code: 500, name: 'E-035', message: '' },
|
|
@@ -70,22 +70,22 @@ const messages = {
|
|
|
70
70
|
W_012: { code: 202, name: 'W-012', message: 'There are not enough pending taxis to dispatch. No hay suficientes taxis pendientes para enviar.' },
|
|
71
71
|
W_013: { code: 202, name: 'W-013', message: 'Invalid action. Acción no válida.' },
|
|
72
72
|
W_014: { code: 202, name: 'W-014', message: 'You must provide a reason for rejection. Debe proporcionar un motivo de rechazo.' },
|
|
73
|
-
W_015: { code: 202, name: 'W-015', message: 'The following vehicles are already in
|
|
73
|
+
W_015: { code: 202, name: 'W-015', message: 'The following vehicles are already in *pending* status' },
|
|
74
74
|
W_016: { code: 202, name: 'W-016', message: 'The badge is already in use by another user. La escarapela ya está en uso por otro usuario' },
|
|
75
75
|
W_017: { code: 202, name: 'W-017', message: 'Some recipients failed in bulk sending' },
|
|
76
76
|
W_018: { code: 202, name: 'W-018', message: 'Missing email template variables' },
|
|
77
77
|
W_019: { code: 202, name: 'W-019', message: 'Empty recipient list' },
|
|
78
|
-
W_020: { code: 202, name: 'W-020', message: '' },
|
|
79
|
-
W_021: { code: 202, name: 'W-021', message: '' },
|
|
80
|
-
W_022: { code: 202, name: 'W-022', message: '' },
|
|
81
|
-
W_023: { code: 202, name: 'W-023', message: '' },
|
|
82
|
-
W_024: { code: 202, name: 'W-024', message: '' },
|
|
83
|
-
W_025: { code: 202, name: 'W-025', message: '' },
|
|
84
|
-
W_026: { code: 202, name: 'W-026', message: '' },
|
|
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: '' },
|
|
78
|
+
W_020: { code: 202, name: 'W-020', message: '{0} no disponible' },
|
|
79
|
+
W_021: { code: 202, name: 'W-021', message: '{0} no disponible en esas fechas' },
|
|
80
|
+
W_022: { code: 202, name: 'W-022', message: 'El usuario no tiene numero de celular' },
|
|
81
|
+
W_023: { code: 202, name: 'W-023', message: 'Vehicle plate already belongs to another vehicle. La placa ya pertenece a otro vehículo.' },
|
|
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
|
+
W_025: { code: 202, name: 'W-025', message: 'Field {0} requires at least {1} characters. El campo {0} requiere al menos {1} caracteres.' },
|
|
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: '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: '' },
|