@manticore-labs/nest 0.1.0 → 0.1.3
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/.idea/workspace.xml +25 -19
- package/README.md +1 -0
- package/build/main/index.d.ts +27 -0
- package/build/main/index.js +30 -1
- package/build/main/lib/auth0/auth0.service.d.ts +7 -3
- package/build/main/lib/auth0/auth0.service.js +24 -3
- package/build/main/lib/decoradores/dto/validadores-or-and/esTipo.d.ts +3 -0
- package/build/main/lib/decoradores/dto/validadores-or-and/esTipo.js +39 -0
- package/build/main/lib/decoradores/dto/validadores-or-and/interfaces.d.ts +12 -0
- package/build/main/lib/decoradores/dto/validadores-or-and/interfaces.js +3 -0
- package/build/main/lib/decoradores/mlab-swagger/constantes.js +4 -2
- package/build/main/lib/decoradores/mlab-swagger/interfaces.d.ts +15 -2
- package/build/main/lib/funciones-util/typeorm/valor-esta-dentro-del-arreglo.js +7 -2
- package/build/main/lib/google-cloud/google-cloud-vision-api/constants.d.ts +1 -0
- package/build/main/lib/google-cloud/google-cloud-vision-api/constants.js +5 -0
- package/build/main/lib/google-cloud/google-cloud-vision-api/google-cloud-vision-api-principal.module.d.ts +5 -0
- package/build/main/lib/google-cloud/google-cloud-vision-api/google-cloud-vision-api-principal.module.js +55 -0
- package/build/main/lib/google-cloud/google-cloud-vision-api/google-cloud-vision-api.helper.d.ts +3 -0
- package/build/main/lib/google-cloud/google-cloud-vision-api/google-cloud-vision-api.helper.js +9 -0
- package/build/main/lib/google-cloud/google-cloud-vision-api/google-cloud-vision-api.module.d.ts +2 -0
- package/build/main/lib/google-cloud/google-cloud-vision-api/google-cloud-vision-api.module.js +29 -0
- package/build/main/lib/google-cloud/google-cloud-vision-api/google-cloud-vision-api.service.d.ts +26 -0
- package/build/main/lib/google-cloud/google-cloud-vision-api/google-cloud-vision-api.service.js +91 -0
- package/build/main/lib/google-cloud/google-cloud-vision-api/interfaces/texto-imagen.interface.d.ts +6 -0
- package/build/main/lib/google-cloud/google-cloud-vision-api/interfaces/texto-imagen.interface.js +3 -0
- package/build/main/lib/modulos-configuracion/base-datos/base-datos.core.module.d.ts +6 -0
- package/build/main/lib/modulos-configuracion/base-datos/base-datos.core.module.js +71 -0
- package/build/main/lib/modulos-configuracion/base-datos/base-datos.helper.d.ts +10 -0
- package/build/main/lib/modulos-configuracion/base-datos/base-datos.helper.js +154 -0
- package/build/main/lib/modulos-configuracion/base-datos/base-datos.module.d.ts +7 -0
- package/build/main/lib/modulos-configuracion/base-datos/base-datos.module.js +30 -0
- package/build/main/lib/modulos-configuracion/base-datos/base-datos.service.d.ts +13 -0
- package/build/main/lib/modulos-configuracion/base-datos/base-datos.service.js +114 -0
- package/build/main/lib/modulos-configuracion/base-datos/constantes.d.ts +2 -0
- package/build/main/lib/modulos-configuracion/base-datos/constantes.js +6 -0
- package/build/main/lib/modulos-configuracion/base-datos/excepciones/creacion.exception.d.ts +9 -0
- package/build/main/lib/modulos-configuracion/base-datos/excepciones/creacion.exception.js +22 -0
- package/build/main/lib/modulos-configuracion/base-datos/excepciones/vacio.exception.d.ts +5 -0
- package/build/main/lib/modulos-configuracion/base-datos/excepciones/vacio.exception.js +13 -0
- package/build/main/lib/modulos-configuracion/base-datos/excepciones/validacion.exception.d.ts +6 -0
- package/build/main/lib/modulos-configuracion/base-datos/excepciones/validacion.exception.js +11 -0
- package/build/main/lib/modulos-configuracion/base-datos/funciones/guardar-tree-lugar.d.ts +3 -0
- package/build/main/lib/modulos-configuracion/base-datos/funciones/guardar-tree-lugar.js +34 -0
- package/build/main/lib/modulos-configuracion/base-datos/interfaces/conexion-base-datos.interface.d.ts +12 -0
- package/build/main/lib/modulos-configuracion/base-datos/interfaces/conexion-base-datos.interface.js +3 -0
- package/build/main/lib/modulos-configuracion/base-datos/interfaces/configuracion-bd.interface.d.ts +11 -0
- package/build/main/lib/modulos-configuracion/base-datos/interfaces/configuracion-bd.interface.js +3 -0
- package/build/main/lib/modulos-configuracion/base-datos/interfaces/entidades.interface.d.ts +8 -0
- package/build/main/lib/modulos-configuracion/base-datos/interfaces/entidades.interface.js +3 -0
- package/build/main/lib/modulos-configuracion/base-datos/interfaces/entorno-configuracion.interface.d.ts +28 -0
- package/build/main/lib/modulos-configuracion/base-datos/interfaces/entorno-configuracion.interface.js +3 -0
- package/build/main/lib/modulos-configuracion/base-datos/interfaces/meta-dato-prueba.interface.d.ts +22 -0
- package/build/main/lib/modulos-configuracion/base-datos/interfaces/meta-dato-prueba.interface.js +3 -0
- package/build/main/lib/modulos-configuracion/base-datos/interfaces/respuesta-validacion.interface.d.ts +24 -0
- package/build/main/lib/modulos-configuracion/base-datos/interfaces/respuesta-validacion.interface.js +3 -0
- package/build/main/lib/modulos-configuracion/base-datos/store/datos-prueba.storage.d.ts +6 -0
- package/build/main/lib/modulos-configuracion/base-datos/store/datos-prueba.storage.js +14 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/constantes/constantes.d.ts +2 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/constantes/constantes.js +6 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/constantes/esquemas-genericos.d.ts +43 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/constantes/esquemas-genericos.js +59 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/arreglo.d.ts +2 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/arreglo.js +9 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/booleano.d.ts +2 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/booleano.js +9 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/caracter.d.ts +2 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/caracter.js +9 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/decimal.d.ts +2 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/decimal.js +9 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/delegador/delegador-decorador.d.ts +2 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/delegador/delegador-decorador.js +19 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/entero.d.ts +2 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/entero.js +9 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/objeto.d.ts +2 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/objeto.js +9 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/interfaces/plantilla.interface.d.ts +65 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/interfaces/plantilla.interface.js +3 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/mlab-swagger-core.module.d.ts +4 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/mlab-swagger-core.module.js +40 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/mlab-swagger-helper.d.ts +13 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/mlab-swagger-helper.js +86 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/mlab-swagger.module.d.ts +7 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/mlab-swagger.module.js +33 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/mlab-swagger.service.d.ts +5 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/mlab-swagger.service.js +71 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/mlab-swagger.store.d.ts +11 -0
- package/build/main/lib/modulos-configuracion/mlab-swagger/mlab-swagger.store.js +48 -0
- package/build/main/lib/mongo-configuracion-indice.interface.d.ts +5 -0
- package/build/main/lib/mongo-configuracion-indice.interface.js +3 -0
- package/build/main/lib/principal-mongo.controller.d.ts +11 -0
- package/build/main/lib/principal-mongo.controller.js +82 -0
- package/build/main/lib/principal-mongo.service.d.ts +10 -0
- package/build/main/lib/principal-mongo.service.js +45 -0
- package/build/main/lib/principal.controller.d.ts +13 -12
- package/build/main/lib/principal.controller.js +1 -1
- package/build/main/lib/principal.http.service.d.ts +13 -0
- package/build/main/lib/principal.http.service.js +26 -0
- package/build/main/lib/principal.service.d.ts +16 -5
- package/build/main/lib/principal.service.js +83 -2
- package/build/module/index.d.ts +27 -0
- package/build/module/index.js +30 -1
- package/build/module/lib/auth0/auth0.service.d.ts +7 -3
- package/build/module/lib/auth0/auth0.service.js +24 -3
- package/build/module/lib/decoradores/dto/validadores-or-and/esTipo.d.ts +3 -0
- package/build/module/lib/decoradores/dto/validadores-or-and/esTipo.js +35 -0
- package/build/module/lib/decoradores/dto/validadores-or-and/interfaces.d.ts +12 -0
- package/build/module/lib/decoradores/dto/validadores-or-and/interfaces.js +1 -0
- package/build/module/lib/decoradores/mlab-swagger/constantes.js +4 -2
- package/build/module/lib/decoradores/mlab-swagger/interfaces.d.ts +15 -2
- package/build/module/lib/funciones-util/typeorm/valor-esta-dentro-del-arreglo.js +7 -2
- package/build/module/lib/google-cloud/google-cloud-vision-api/constants.d.ts +1 -0
- package/build/module/lib/google-cloud/google-cloud-vision-api/constants.js +2 -0
- package/build/module/lib/google-cloud/google-cloud-vision-api/google-cloud-vision-api-principal.module.d.ts +5 -0
- package/build/module/lib/google-cloud/google-cloud-vision-api/google-cloud-vision-api-principal.module.js +52 -0
- package/build/module/lib/google-cloud/google-cloud-vision-api/google-cloud-vision-api.helper.d.ts +3 -0
- package/build/module/lib/google-cloud/google-cloud-vision-api/google-cloud-vision-api.helper.js +5 -0
- package/build/module/lib/google-cloud/google-cloud-vision-api/google-cloud-vision-api.module.d.ts +2 -0
- package/build/module/lib/google-cloud/google-cloud-vision-api/google-cloud-vision-api.module.js +26 -0
- package/build/module/lib/google-cloud/google-cloud-vision-api/google-cloud-vision-api.service.d.ts +26 -0
- package/build/module/lib/google-cloud/google-cloud-vision-api/google-cloud-vision-api.service.js +88 -0
- package/build/module/lib/google-cloud/google-cloud-vision-api/interfaces/texto-imagen.interface.d.ts +6 -0
- package/build/module/lib/google-cloud/google-cloud-vision-api/interfaces/texto-imagen.interface.js +1 -0
- package/build/module/lib/modulos-configuracion/base-datos/base-datos.core.module.d.ts +6 -0
- package/build/module/lib/modulos-configuracion/base-datos/base-datos.core.module.js +68 -0
- package/build/module/lib/modulos-configuracion/base-datos/base-datos.helper.d.ts +10 -0
- package/build/module/lib/modulos-configuracion/base-datos/base-datos.helper.js +150 -0
- package/build/module/lib/modulos-configuracion/base-datos/base-datos.module.d.ts +7 -0
- package/build/module/lib/modulos-configuracion/base-datos/base-datos.module.js +27 -0
- package/build/module/lib/modulos-configuracion/base-datos/base-datos.service.d.ts +13 -0
- package/build/module/lib/modulos-configuracion/base-datos/base-datos.service.js +111 -0
- package/build/module/lib/modulos-configuracion/base-datos/constantes.d.ts +2 -0
- package/build/module/lib/modulos-configuracion/base-datos/constantes.js +3 -0
- package/build/module/lib/modulos-configuracion/base-datos/excepciones/creacion.exception.d.ts +9 -0
- package/build/module/lib/modulos-configuracion/base-datos/excepciones/creacion.exception.js +18 -0
- package/build/module/lib/modulos-configuracion/base-datos/excepciones/vacio.exception.d.ts +5 -0
- package/build/module/lib/modulos-configuracion/base-datos/excepciones/vacio.exception.js +9 -0
- package/build/module/lib/modulos-configuracion/base-datos/excepciones/validacion.exception.d.ts +6 -0
- package/build/module/lib/modulos-configuracion/base-datos/excepciones/validacion.exception.js +7 -0
- package/build/module/lib/modulos-configuracion/base-datos/funciones/guardar-tree-lugar.d.ts +3 -0
- package/build/module/lib/modulos-configuracion/base-datos/funciones/guardar-tree-lugar.js +30 -0
- package/build/module/lib/modulos-configuracion/base-datos/interfaces/conexion-base-datos.interface.d.ts +12 -0
- package/build/module/lib/modulos-configuracion/base-datos/interfaces/conexion-base-datos.interface.js +1 -0
- package/build/module/lib/modulos-configuracion/base-datos/interfaces/configuracion-bd.interface.d.ts +11 -0
- package/build/module/lib/modulos-configuracion/base-datos/interfaces/configuracion-bd.interface.js +1 -0
- package/build/module/lib/modulos-configuracion/base-datos/interfaces/entidades.interface.d.ts +8 -0
- package/build/module/lib/modulos-configuracion/base-datos/interfaces/entidades.interface.js +1 -0
- package/build/module/lib/modulos-configuracion/base-datos/interfaces/entorno-configuracion.interface.d.ts +28 -0
- package/build/module/lib/modulos-configuracion/base-datos/interfaces/entorno-configuracion.interface.js +1 -0
- package/build/module/lib/modulos-configuracion/base-datos/interfaces/meta-dato-prueba.interface.d.ts +22 -0
- package/build/module/lib/modulos-configuracion/base-datos/interfaces/meta-dato-prueba.interface.js +1 -0
- package/build/module/lib/modulos-configuracion/base-datos/interfaces/respuesta-validacion.interface.d.ts +24 -0
- package/build/module/lib/modulos-configuracion/base-datos/interfaces/respuesta-validacion.interface.js +1 -0
- package/build/module/lib/modulos-configuracion/base-datos/store/datos-prueba.storage.d.ts +6 -0
- package/build/module/lib/modulos-configuracion/base-datos/store/datos-prueba.storage.js +10 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/constantes/constantes.d.ts +2 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/constantes/constantes.js +3 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/constantes/esquemas-genericos.d.ts +43 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/constantes/esquemas-genericos.js +56 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/arreglo.d.ts +2 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/arreglo.js +5 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/booleano.d.ts +2 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/booleano.js +5 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/caracter.d.ts +2 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/caracter.js +5 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/decimal.d.ts +2 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/decimal.js +5 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/delegador/delegador-decorador.d.ts +2 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/delegador/delegador-decorador.js +18 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/entero.d.ts +2 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/entero.js +5 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/objeto.d.ts +2 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/decoradores/atributos/objeto.js +5 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/interfaces/plantilla.interface.d.ts +65 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/interfaces/plantilla.interface.js +1 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/mlab-swagger-core.module.d.ts +4 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/mlab-swagger-core.module.js +37 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/mlab-swagger-helper.d.ts +13 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/mlab-swagger-helper.js +126 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/mlab-swagger.module.d.ts +7 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/mlab-swagger.module.js +33 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/mlab-swagger.service.d.ts +5 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/mlab-swagger.service.js +86 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/mlab-swagger.store.d.ts +11 -0
- package/build/module/lib/modulos-configuracion/mlab-swagger/mlab-swagger.store.js +46 -0
- package/build/module/lib/mongo-configuracion-indice.interface.d.ts +5 -0
- package/build/module/lib/mongo-configuracion-indice.interface.js +1 -0
- package/build/module/lib/principal-mongo.controller.d.ts +11 -0
- package/build/module/lib/principal-mongo.controller.js +78 -0
- package/build/module/lib/principal-mongo.service.d.ts +10 -0
- package/build/module/lib/principal-mongo.service.js +41 -0
- package/build/module/lib/principal.controller.d.ts +13 -12
- package/build/module/lib/principal.controller.js +1 -1
- package/build/module/lib/principal.http.service.d.ts +13 -0
- package/build/module/lib/principal.http.service.js +22 -0
- package/build/module/lib/principal.service.d.ts +16 -5
- package/build/module/lib/principal.service.js +85 -4
- package/package.json +8 -5
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { registerDecorator } from 'class-validator';
|
|
2
|
+
export function EsTipo(estrategiaDeValidacionTipos, paraTodo, argsDic, opcionesValidacion) {
|
|
3
|
+
const estrategiasValidacion = Object.keys(estrategiaDeValidacionTipos);
|
|
4
|
+
const tieneArgumentosDiccionario = !!(argsDic && Object.keys(argsDic).length > 0);
|
|
5
|
+
return function (objecto, nombrePropiedad) {
|
|
6
|
+
registerDecorator({
|
|
7
|
+
name: 'incorrectType',
|
|
8
|
+
target: objecto.constructor,
|
|
9
|
+
propertyName: nombrePropiedad,
|
|
10
|
+
options: opcionesValidacion,
|
|
11
|
+
validator: {
|
|
12
|
+
validate(value) {
|
|
13
|
+
const validacionGeneralCB = (estrategia) => {
|
|
14
|
+
const parametros = tieneArgumentosDiccionario ? argsDic[estrategia] : undefined;
|
|
15
|
+
const callback = estrategiaDeValidacionTipos[estrategia];
|
|
16
|
+
return callback(value, parametros);
|
|
17
|
+
};
|
|
18
|
+
if (paraTodo) {
|
|
19
|
+
return estrategiasValidacion.every(validacionGeneralCB);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
return estrategiasValidacion.some(validacionGeneralCB);
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
defaultMessage() {
|
|
26
|
+
const ultimoTipo = estrategiasValidacion.pop();
|
|
27
|
+
if (estrategiasValidacion.length === 0)
|
|
28
|
+
return `El valor debe ser ${ultimoTipo}`;
|
|
29
|
+
return `Puede ser solo ${estrategiasValidacion.join(', ')} ${paraTodo ? 'y' : 'o'} ${ultimoTipo}.`;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNUaXBvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kZWNvcmFkb3Jlcy9kdG8vdmFsaWRhZG9yZXMtb3ItYW5kL2VzVGlwby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsaUJBQWlCLEVBQW9CLE1BQU0saUJBQWlCLENBQUM7QUFFckUsTUFBTSxVQUFVLE1BQU0sQ0FDbEIsMkJBQTJDLEVBQzNDLFFBQWtCLEVBQ2xCLE9BQXlDLEVBQ3pDLGtCQUFzQztJQUV0QyxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUN2RSxNQUFNLDBCQUEwQixHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUVsRixPQUFPLFVBQ0gsT0FBZSxFQUNmLGVBQXVCO1FBRXZCLGlCQUFpQixDQUNiO1lBQ0ksSUFBSSxFQUFFLGVBQWU7WUFDckIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxXQUFXO1lBQzNCLFlBQVksRUFBRSxlQUFlO1lBQzdCLE9BQU8sRUFBRSxrQkFBa0I7WUFDM0IsU0FBUyxFQUFFO2dCQUNQLFFBQVEsQ0FBQyxLQUFVO29CQUNmLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxVQUFrQixFQUFFLEVBQUU7d0JBQy9DLE1BQU0sVUFBVSxHQUFHLDBCQUEwQixDQUFDLENBQUMsQ0FBRSxPQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQzt3QkFDekYsTUFBTSxRQUFRLEdBQXVCLDJCQUEyQixDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUM3RSxPQUFPLFFBQVEsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7b0JBQ3ZDLENBQUMsQ0FBQTtvQkFDRCxJQUFJLFFBQVEsRUFBRTt3QkFDVixPQUFPLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO3FCQUMxRDt5QkFBTTt3QkFDSCxPQUFPLHFCQUFxQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO3FCQUMxRDtnQkFDTCxDQUFDO2dCQUNELGNBQWM7b0JBQ1YsTUFBTSxVQUFVLEdBQUcscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQy9DLElBQUkscUJBQXFCLENBQUMsTUFBTSxLQUFLLENBQUM7d0JBQ2xDLE9BQU8scUJBQXFCLFVBQVUsRUFBRSxDQUFDO29CQUM3QyxPQUFPLGtCQUFrQixxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxVQUFVLEdBQUcsQ0FBQztnQkFDdkcsQ0FBQzthQUNKO1NBQ0osQ0FDSixDQUFDO0lBQ04sQ0FBQyxDQUFBO0FBQ0wsQ0FBQyJ9
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ValidationArguments } from 'class-validator';
|
|
2
|
+
export interface HasMap {
|
|
3
|
+
[key: string]: any;
|
|
4
|
+
}
|
|
5
|
+
export declare type ValidationFunction = (value: any, ...args: any[]) => boolean;
|
|
6
|
+
export interface ColeccionTipos {
|
|
7
|
+
[k: string]: ValidationFunction;
|
|
8
|
+
}
|
|
9
|
+
export declare type ValidadorTipo = Array<keyof ColeccionTipos>;
|
|
10
|
+
export declare type ArgumentosValidacionTipos<T = ColeccionTipos> = {
|
|
11
|
+
[k in keyof T]: HasMap | ValidationArguments;
|
|
12
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGVjb3JhZG9yZXMvZHRvL3ZhbGlkYWRvcmVzLW9yLWFuZC9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -3,7 +3,9 @@ export const NOMBRE_METODOS_CRUD_API = {
|
|
|
3
3
|
update: 'update',
|
|
4
4
|
delete: 'delete',
|
|
5
5
|
findOne: 'findOne',
|
|
6
|
-
findAll: 'findAll'
|
|
6
|
+
findAll: 'findAll',
|
|
7
|
+
findFull: 'findFull',
|
|
8
|
+
find: 'find',
|
|
7
9
|
};
|
|
8
10
|
export const BODY_METADATA_DEFECTO = {
|
|
9
11
|
type: String,
|
|
@@ -16,4 +18,4 @@ export const OPCIONES_QUERY_POR_DEFECTO = {
|
|
|
16
18
|
export const OPCIONES_HEADER_DEFECTO = {
|
|
17
19
|
name: '',
|
|
18
20
|
};
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGVjb3JhZG9yZXMvbWxhYi1zd2FnZ2VyL2NvbnN0YW50ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQWU7SUFDakQsTUFBTSxFQUFFLFFBQVE7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsSUFBSSxFQUFFLE1BQU07Q0FDYixDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQW9CO0lBQ3BELElBQUksRUFBRSxNQUFNO0lBQ1osUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQW9CO0lBQ3pELElBQUksRUFBRSxFQUFFO0lBQ1IsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQThCO0lBQ2hFLElBQUksRUFBRSxFQUFFO0NBQ1QsQ0FBQyJ9
|
|
@@ -8,21 +8,34 @@ export interface OperacionesCrud {
|
|
|
8
8
|
delete?: any;
|
|
9
9
|
findOne?: any;
|
|
10
10
|
findAll?: any;
|
|
11
|
+
findFull?: any;
|
|
12
|
+
find?: any;
|
|
11
13
|
}
|
|
12
|
-
export interface
|
|
14
|
+
export interface MetodosCrudServicioInterface extends OperacionesCrud {
|
|
15
|
+
create: (...args: any[]) => any;
|
|
16
|
+
update: (...args: any[]) => any;
|
|
17
|
+
delete: (...args: any[]) => any;
|
|
18
|
+
findOne: (...args: any[]) => any;
|
|
19
|
+
findAll?: (...args: any[]) => any;
|
|
20
|
+
findFull?: (...args: any[]) => any;
|
|
21
|
+
find?: (...args: any[]) => any;
|
|
22
|
+
}
|
|
23
|
+
export interface MetodosCrudControllersInterface extends OperacionesCrud {
|
|
13
24
|
create: (criterioBusqueda: any, req: any, res: any, ...args: any[]) => any;
|
|
14
25
|
update: (id: any, registroAActualizar: any, req: any, res: any, ...args: any[]) => any;
|
|
15
26
|
delete: (nuevoRegistro: any, req: any, res: any, ...args: any[]) => any;
|
|
16
27
|
findOne: (id: any, req: any, res: any, ...args: any[]) => any;
|
|
17
28
|
findAll: (criterioBusqueda: any, req: any, res: any, ...args: any[]) => any;
|
|
29
|
+
findFull?: (criterioBusqueda: any, req: any, res: any, ...args: any[]) => any;
|
|
18
30
|
}
|
|
19
|
-
export declare type MetodoCrud = keyof
|
|
31
|
+
export declare type MetodoCrud = keyof MetodosCrudControllersInterface;
|
|
20
32
|
export interface CrudApiDocConfigInterface extends OperacionesCrud {
|
|
21
33
|
create?: CreateUpdateOneConfigInterface;
|
|
22
34
|
update?: CreateUpdateOneConfigInterface;
|
|
23
35
|
findAll?: BaseConfig;
|
|
24
36
|
delete?: BaseConfig;
|
|
25
37
|
findOne?: BaseConfig;
|
|
38
|
+
findFull?: BaseConfig;
|
|
26
39
|
}
|
|
27
40
|
export interface BaseConfig {
|
|
28
41
|
headers?: ApiHeaderOptions[];
|
|
@@ -10,10 +10,15 @@ export function ValorEstaDentroDeArreglo(property, validationOptions) {
|
|
|
10
10
|
validator: {
|
|
11
11
|
validate(value, args) {
|
|
12
12
|
const arreglo = args.constraints[0];
|
|
13
|
-
return arreglo.some((valorEnArreglo) =>
|
|
13
|
+
return arreglo.some((valorEnArreglo) => {
|
|
14
|
+
if (value === 0 && valorEnArreglo === 0) {
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
return valorEnArreglo === value;
|
|
18
|
+
});
|
|
14
19
|
}
|
|
15
20
|
}
|
|
16
21
|
});
|
|
17
22
|
};
|
|
18
23
|
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsb3ItZXN0YS1kZW50cm8tZGVsLWFycmVnbG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Z1bmNpb25lcy11dGlsL3R5cGVvcm0vdmFsb3ItZXN0YS1kZW50cm8tZGVsLWFycmVnbG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUF5QyxNQUFNLGlCQUFpQixDQUFDO0FBRTFGLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxRQUFlLEVBQUUsaUJBQXFDO0lBQzNGLE9BQU8sVUFBVSxNQUFjLEVBQUUsWUFBb0I7UUFDakQsaUJBQWlCLENBQUM7WUFDZCxJQUFJLEVBQUUsMEJBQTBCO1lBQ2hDLE1BQU0sRUFBRSxNQUFNLENBQUMsV0FBVztZQUMxQixZQUFZLEVBQUUsWUFBWTtZQUMxQixXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFDdkIsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixTQUFTLEVBQUU7Z0JBQ1AsUUFBUSxDQUFDLEtBQVUsRUFBRSxJQUF5QjtvQkFDMUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDcEMsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUNmLENBQUMsY0FBYyxFQUFFLEVBQUU7d0JBQ2YsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLGNBQWMsS0FBSyxDQUFDLEVBQUU7NEJBQ3JDLE9BQU8sSUFBSSxDQUFBO3lCQUNkO3dCQUNELE9BQU8sY0FBYyxLQUFLLEtBQUssQ0FBQztvQkFDcEMsQ0FBQyxDQUFDLENBQUM7Z0JBQ1gsQ0FBQzthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDO0FBQ04sQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GCP_VISION_API_CLIENT = "GCP_VISION_API_CLIENT";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const GCP_VISION_API_CLIENT = 'GCP_VISION_API_CLIENT';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9nb29nbGUtY2xvdWQvZ29vZ2xlLWNsb3VkLXZpc2lvbi1hcGkvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLHVCQUF1QixDQUFDIn0=
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var GoogleCloudVisionApiPrincipalModule_1;
|
|
8
|
+
import { Module } from '@nestjs/common';
|
|
9
|
+
import { GCP_VISION_API_CLIENT } from './constants';
|
|
10
|
+
import { GoogleCloudVisionApiService } from './google-cloud-vision-api.service';
|
|
11
|
+
import { ImageAnnotatorClient } from '@google-cloud/vision';
|
|
12
|
+
let GoogleCloudVisionApiPrincipalModule = GoogleCloudVisionApiPrincipalModule_1 = class GoogleCloudVisionApiPrincipalModule {
|
|
13
|
+
static register() {
|
|
14
|
+
return {
|
|
15
|
+
module: GoogleCloudVisionApiPrincipalModule_1,
|
|
16
|
+
providers: [
|
|
17
|
+
...this.inyectarYObtenerProviders,
|
|
18
|
+
],
|
|
19
|
+
exports: [
|
|
20
|
+
...this.inyectarYObtenerProviders,
|
|
21
|
+
]
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
static get inyectarYObtenerProviders() {
|
|
25
|
+
const clienteV = new ImageAnnotatorClient();
|
|
26
|
+
const injeccionDelClienteGPC = {
|
|
27
|
+
provide: GCP_VISION_API_CLIENT,
|
|
28
|
+
useValue: clienteV,
|
|
29
|
+
};
|
|
30
|
+
const injeccionDelServicio = {
|
|
31
|
+
provide: GoogleCloudVisionApiService,
|
|
32
|
+
useFactory: (cliente) => new GoogleCloudVisionApiService(cliente),
|
|
33
|
+
inject: [GCP_VISION_API_CLIENT]
|
|
34
|
+
};
|
|
35
|
+
return [
|
|
36
|
+
injeccionDelClienteGPC,
|
|
37
|
+
injeccionDelServicio,
|
|
38
|
+
];
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
GoogleCloudVisionApiPrincipalModule = GoogleCloudVisionApiPrincipalModule_1 = __decorate([
|
|
42
|
+
Module({
|
|
43
|
+
providers: [
|
|
44
|
+
GoogleCloudVisionApiService
|
|
45
|
+
],
|
|
46
|
+
exports: [
|
|
47
|
+
GoogleCloudVisionApiService
|
|
48
|
+
]
|
|
49
|
+
})
|
|
50
|
+
], GoogleCloudVisionApiPrincipalModule);
|
|
51
|
+
export { GoogleCloudVisionApiPrincipalModule };
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWNsb3VkLXZpc2lvbi1hcGktcHJpbmNpcGFsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZ29vZ2xlLWNsb3VkL2dvb2dsZS1jbG91ZC12aXNpb24tYXBpL2dvb2dsZS1jbG91ZC12aXNpb24tYXBpLXByaW5jaXBhbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLE9BQU8sRUFBaUIsTUFBTSxFQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBWTFELElBQWEsbUNBQW1DLDJDQUFoRCxNQUFhLG1DQUFtQztJQUU5QyxNQUFNLENBQUMsUUFBUTtRQUNiLE9BQVE7WUFDTixNQUFNLEVBQUUscUNBQW1DO1lBQzNDLFNBQVMsRUFBRTtnQkFDVCxHQUFHLElBQUksQ0FBQyx5QkFBeUI7YUFDbEM7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsR0FBRyxJQUFJLENBQUMseUJBQXlCO2FBQ2xDO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUFFTyxNQUFNLEtBQUsseUJBQXlCO1FBQzFDLE1BQU0sUUFBUSxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUU1QyxNQUFNLHNCQUFzQixHQUFhO1lBQ3ZDLE9BQU8sRUFBRSxxQkFBcUI7WUFDOUIsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQTtRQUNELE1BQU0sb0JBQW9CLEdBQWE7WUFDckMsT0FBTyxFQUFFLDJCQUEyQjtZQUNwQyxVQUFVLEVBQUUsQ0FBQyxPQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksMkJBQTJCLENBQUMsT0FBTyxDQUFDO1lBQ3RFLE1BQU0sRUFBRSxDQUFDLHFCQUFxQixDQUFDO1NBQ2hDLENBQUM7UUFDRixPQUFPO1lBQ0wsc0JBQXNCO1lBQ3RCLG9CQUFvQjtTQUNyQixDQUFBO0lBQ0gsQ0FBQztDQUNGLENBQUE7QUEvQlksbUNBQW1DO0lBVi9DLE1BQU0sQ0FDTDtRQUNFLFNBQVMsRUFBRTtZQUNULDJCQUEyQjtTQUM1QjtRQUNELE9BQU8sRUFBRTtZQUNQLDJCQUEyQjtTQUM1QjtLQUNGLENBQ0Y7R0FDWSxtQ0FBbUMsQ0ErQi9DO1NBL0JZLG1DQUFtQyJ9
|
package/build/module/lib/google-cloud/google-cloud-vision-api/google-cloud-vision-api.helper.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export class GoogleCloudVisionApiHelper {
|
|
2
|
+
static construirProviders() {
|
|
3
|
+
}
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWNsb3VkLXZpc2lvbi1hcGkuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9nb29nbGUtY2xvdWQvZ29vZ2xlLWNsb3VkLXZpc2lvbi1hcGkvZ29vZ2xlLWNsb3VkLXZpc2lvbi1hcGkuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTywwQkFBMEI7SUFDckMsTUFBTSxDQUFDLGtCQUFrQjtJQUV6QixDQUFDO0NBQ0YifQ==
|
package/build/module/lib/google-cloud/google-cloud-vision-api/google-cloud-vision-api.module.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { Module } from '@nestjs/common';
|
|
8
|
+
import { GoogleCloudVisionApiService } from './google-cloud-vision-api.service';
|
|
9
|
+
import { GoogleCloudVisionApiPrincipalModule } from './google-cloud-vision-api-principal.module';
|
|
10
|
+
let GoogleCloudVisionApiModule = class GoogleCloudVisionApiModule {
|
|
11
|
+
};
|
|
12
|
+
GoogleCloudVisionApiModule = __decorate([
|
|
13
|
+
Module({
|
|
14
|
+
imports: [
|
|
15
|
+
GoogleCloudVisionApiPrincipalModule.register()
|
|
16
|
+
],
|
|
17
|
+
providers: [
|
|
18
|
+
GoogleCloudVisionApiService
|
|
19
|
+
],
|
|
20
|
+
exports: [
|
|
21
|
+
GoogleCloudVisionApiService
|
|
22
|
+
]
|
|
23
|
+
})
|
|
24
|
+
], GoogleCloudVisionApiModule);
|
|
25
|
+
export { GoogleCloudVisionApiModule };
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWNsb3VkLXZpc2lvbi1hcGkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9nb29nbGUtY2xvdWQvZ29vZ2xlLWNsb3VkLXZpc2lvbi1hcGkvZ29vZ2xlLWNsb3VkLXZpc2lvbi1hcGkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQWdCakcsSUFBYSwwQkFBMEIsR0FBdkMsTUFBYSwwQkFBMEI7Q0FDdEMsQ0FBQTtBQURZLDBCQUEwQjtJQWJ0QyxNQUFNLENBQ0w7UUFDRSxPQUFPLEVBQUU7WUFDUCxtQ0FBbUMsQ0FBQyxRQUFRLEVBQUU7U0FDL0M7UUFDRCxTQUFTLEVBQUU7WUFDVCwyQkFBMkI7U0FDNUI7UUFDRCxPQUFPLEVBQUU7WUFDUCwyQkFBMkI7U0FDNUI7S0FDRixDQUNGO0dBQ1ksMEJBQTBCLENBQ3RDO1NBRFksMEJBQTBCIn0=
|
package/build/module/lib/google-cloud/google-cloud-vision-api/google-cloud-vision-api.service.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { ImageAnnotatorClient } from '@google-cloud/vision/build/src/v1/image_annotator_client';
|
|
3
|
+
import { google } from '@google-cloud/vision/build/protos/protos';
|
|
4
|
+
import { TextoImagenInterface } from './interfaces/texto-imagen.interface';
|
|
5
|
+
import { LROperation } from 'google-gax';
|
|
6
|
+
import * as protos from '@google-cloud/vision/build/protos/protos';
|
|
7
|
+
import IEntityAnnotation = google.cloud.vision.v1.IEntityAnnotation;
|
|
8
|
+
import ITextAnnotation = google.cloud.vision.v1.ITextAnnotation;
|
|
9
|
+
import ISafeSearchAnnotation = google.cloud.vision.v1.ISafeSearchAnnotation;
|
|
10
|
+
import ILocalizedObjectAnnotation = google.cloud.vision.v1.ILocalizedObjectAnnotation;
|
|
11
|
+
import IImageProperties = google.cloud.vision.v1.IImageProperties;
|
|
12
|
+
import IFaceAnnotation = google.cloud.vision.v1.IFaceAnnotation;
|
|
13
|
+
export declare class GoogleCloudVisionApiService {
|
|
14
|
+
private cliente;
|
|
15
|
+
constructor(cliente: ImageAnnotatorClient);
|
|
16
|
+
detectarEtiquetas(peticionUri: string | Buffer): Promise<IEntityAnnotation[]>;
|
|
17
|
+
detectarRostros(peticionUri: string | Buffer): Promise<IFaceAnnotation[]>;
|
|
18
|
+
obtenerPropiedades(peticionUri: string | Buffer): Promise<IImageProperties>;
|
|
19
|
+
detectarLandmarks(peticionUri: string | Buffer): Promise<IEntityAnnotation[]>;
|
|
20
|
+
detectarLogos(peticionUri: string | Buffer): Promise<IEntityAnnotation[]>;
|
|
21
|
+
detectarMultiplesObjetos(peticionUri: string | Buffer): Promise<ILocalizedObjectAnnotation[]>;
|
|
22
|
+
detectarContenidoExplicito(peticionUri: string | Buffer): Promise<ISafeSearchAnnotation>;
|
|
23
|
+
detectarTextoEnImagenes(peticionUri: string | Buffer): Promise<IEntityAnnotation[]>;
|
|
24
|
+
detectarTextoManuscritoEnImagenes(peticionUri: string | Buffer): Promise<ITextAnnotation>;
|
|
25
|
+
detectarTextoEnArchivosPDF(configuracion: TextoImagenInterface): Promise<[LROperation<protos.google.cloud.vision.v1.IAsyncBatchAnnotateFilesResponse, protos.google.cloud.vision.v1.IOperationMetadata>, protos.google.longrunning.IOperation | undefined, {} | undefined]>;
|
|
26
|
+
}
|
package/build/module/lib/google-cloud/google-cloud-vision-api/google-cloud-vision-api.service.js
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { Inject, Injectable } from '@nestjs/common';
|
|
14
|
+
import { GCP_VISION_API_CLIENT } from './constants';
|
|
15
|
+
import { ImageAnnotatorClient } from '@google-cloud/vision/build/src/v1/image_annotator_client';
|
|
16
|
+
let GoogleCloudVisionApiService = class GoogleCloudVisionApiService {
|
|
17
|
+
constructor(cliente) {
|
|
18
|
+
this.cliente = cliente;
|
|
19
|
+
}
|
|
20
|
+
async detectarEtiquetas(peticionUri) {
|
|
21
|
+
const [resultados] = await this.cliente.labelDetection(peticionUri);
|
|
22
|
+
return resultados.labelAnnotations;
|
|
23
|
+
}
|
|
24
|
+
async detectarRostros(peticionUri) {
|
|
25
|
+
const [resultados] = await this.cliente.faceDetection(peticionUri);
|
|
26
|
+
return resultados.faceAnnotations;
|
|
27
|
+
}
|
|
28
|
+
async obtenerPropiedades(peticionUri) {
|
|
29
|
+
const [resultados] = await this.cliente.imageProperties(peticionUri);
|
|
30
|
+
return resultados.imagePropertiesAnnotation;
|
|
31
|
+
}
|
|
32
|
+
async detectarLandmarks(peticionUri) {
|
|
33
|
+
const [resultados] = await this.cliente.landmarkDetection(peticionUri);
|
|
34
|
+
return resultados.landmarkAnnotations;
|
|
35
|
+
}
|
|
36
|
+
async detectarLogos(peticionUri) {
|
|
37
|
+
const [resultados] = await this.cliente.logoDetection(peticionUri);
|
|
38
|
+
return resultados.logoAnnotations;
|
|
39
|
+
}
|
|
40
|
+
async detectarMultiplesObjetos(peticionUri) {
|
|
41
|
+
const [resultados] = await this.cliente.objectLocalization(peticionUri);
|
|
42
|
+
return resultados.localizedObjectAnnotations;
|
|
43
|
+
}
|
|
44
|
+
async detectarContenidoExplicito(peticionUri) {
|
|
45
|
+
const [resultados] = await this.cliente.safeSearchDetection(peticionUri);
|
|
46
|
+
return resultados.safeSearchAnnotation;
|
|
47
|
+
}
|
|
48
|
+
async detectarTextoEnImagenes(peticionUri) {
|
|
49
|
+
const [resultados] = await this.cliente.textDetection(peticionUri);
|
|
50
|
+
return resultados.textAnnotations;
|
|
51
|
+
}
|
|
52
|
+
async detectarTextoManuscritoEnImagenes(peticionUri) {
|
|
53
|
+
const [resultados] = await this.cliente.documentTextDetection(peticionUri);
|
|
54
|
+
return resultados.fullTextAnnotation;
|
|
55
|
+
}
|
|
56
|
+
async detectarTextoEnArchivosPDF(configuracion) {
|
|
57
|
+
const gcsDestinationUri = `gs://${configuracion.nombreBucket}/${configuracion.prefijo}/`;
|
|
58
|
+
const inputConfig = {
|
|
59
|
+
mimeType: 'application/pdf',
|
|
60
|
+
gcsSource: {
|
|
61
|
+
uri: configuracion.rutaArchivo,
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
const outputConfig = {
|
|
65
|
+
gcsDestination: {
|
|
66
|
+
uri: gcsDestinationUri,
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
const features = [{ type: 'DOCUMENT_TEXT_DETECTION' }];
|
|
70
|
+
const peticion = {
|
|
71
|
+
requests: [
|
|
72
|
+
{
|
|
73
|
+
inputConfig: inputConfig,
|
|
74
|
+
features,
|
|
75
|
+
outputConfig: outputConfig,
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
};
|
|
79
|
+
return await this.cliente.asyncBatchAnnotateFiles(peticion);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
GoogleCloudVisionApiService = __decorate([
|
|
83
|
+
Injectable(),
|
|
84
|
+
__param(0, Inject(GCP_VISION_API_CLIENT)),
|
|
85
|
+
__metadata("design:paramtypes", [ImageAnnotatorClient])
|
|
86
|
+
], GoogleCloudVisionApiService);
|
|
87
|
+
export { GoogleCloudVisionApiService };
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWNsb3VkLXZpc2lvbi1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZ29vZ2xlLWNsb3VkL2dvb2dsZS1jbG91ZC12aXNpb24tYXBpL2dvb2dsZS1jbG91ZC12aXNpb24tYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFlaEcsSUFBYSwyQkFBMkIsR0FBeEMsTUFBYSwyQkFBMkI7SUFDdEMsWUFFVSxPQUE2QjtRQUE3QixZQUFPLEdBQVAsT0FBTyxDQUFzQjtJQUd2QyxDQUFDO0lBRUQsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFdBQTRCO1FBRWxELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BFLE9BQU8sVUFBVSxDQUFDLGdCQUFnQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZSxDQUFDLFdBQTRCO1FBRWhELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25FLE9BQU8sVUFBVSxDQUFDLGVBQWUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFdBQTRCO1FBRW5ELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sVUFBVSxDQUFDLHlCQUF5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
|
package/build/module/lib/google-cloud/google-cloud-vision-api/interfaces/texto-imagen.interface.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dG8taW1hZ2VuLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZ29vZ2xlLWNsb3VkL2dvb2dsZS1jbG91ZC12aXNpb24tYXBpL2ludGVyZmFjZXMvdGV4dG8taW1hZ2VuLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DynamicModule } from '@nestjs/common';
|
|
2
|
+
import { ConfiguracionBdInterface } from './interfaces/configuracion-bd.interface';
|
|
3
|
+
export declare class BaseDatosCoreModule {
|
|
4
|
+
static registrar(configuracion: ConfiguracionBdInterface): DynamicModule;
|
|
5
|
+
private static obtenerDependencias;
|
|
6
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var BaseDatosCoreModule_1;
|
|
8
|
+
import { Global, Module } from '@nestjs/common';
|
|
9
|
+
import { ENV_CONFIG, META_DATOS_PRUEBA } from './constantes';
|
|
10
|
+
import { BaseDatosService } from './base-datos.service';
|
|
11
|
+
import { TypeOrmModule } from '@nestjs/typeorm';
|
|
12
|
+
import { DatosPruebaStorage } from './store/datos-prueba.storage';
|
|
13
|
+
let BaseDatosCoreModule = BaseDatosCoreModule_1 = class BaseDatosCoreModule {
|
|
14
|
+
static registrar(configuracion) {
|
|
15
|
+
configuracion.datosPrueba = {
|
|
16
|
+
datosPrueba: [
|
|
17
|
+
...DatosPruebaStorage.configuraciones,
|
|
18
|
+
],
|
|
19
|
+
};
|
|
20
|
+
const injeccionConstante = {
|
|
21
|
+
useValue: configuracion.datosPrueba,
|
|
22
|
+
provide: META_DATOS_PRUEBA,
|
|
23
|
+
};
|
|
24
|
+
const injeccionEntorno = {
|
|
25
|
+
useValue: configuracion.configuracionEntorno,
|
|
26
|
+
provide: ENV_CONFIG,
|
|
27
|
+
};
|
|
28
|
+
const dependencias = BaseDatosCoreModule_1
|
|
29
|
+
.obtenerDependencias(configuracion.bdConfiguracion);
|
|
30
|
+
return {
|
|
31
|
+
module: BaseDatosCoreModule_1,
|
|
32
|
+
imports: [
|
|
33
|
+
...dependencias,
|
|
34
|
+
],
|
|
35
|
+
providers: [
|
|
36
|
+
injeccionConstante,
|
|
37
|
+
injeccionEntorno,
|
|
38
|
+
BaseDatosService,
|
|
39
|
+
],
|
|
40
|
+
exports: [
|
|
41
|
+
injeccionConstante,
|
|
42
|
+
injeccionEntorno,
|
|
43
|
+
BaseDatosService,
|
|
44
|
+
...dependencias,
|
|
45
|
+
],
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
static obtenerDependencias(bds) {
|
|
49
|
+
const configuracionesConexiones = Object.values(bds);
|
|
50
|
+
const dependencias = configuracionesConexiones.map(conf => TypeOrmModule.forRoot(conf));
|
|
51
|
+
return [
|
|
52
|
+
...dependencias,
|
|
53
|
+
];
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
BaseDatosCoreModule = BaseDatosCoreModule_1 = __decorate([
|
|
57
|
+
Global(),
|
|
58
|
+
Module({
|
|
59
|
+
providers: [
|
|
60
|
+
BaseDatosService,
|
|
61
|
+
],
|
|
62
|
+
exports: [
|
|
63
|
+
BaseDatosService,
|
|
64
|
+
],
|
|
65
|
+
})
|
|
66
|
+
], BaseDatosCoreModule);
|
|
67
|
+
export { BaseDatosCoreModule };
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kYXRvcy5jb3JlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbW9kdWxvcy1jb25maWd1cmFjaW9uL2Jhc2UtZGF0b3MvYmFzZS1kYXRvcy5jb3JlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsT0FBTyxFQUFnQixNQUFNLEVBQUUsTUFBTSxFQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFDLFVBQVUsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUMzRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFhaEUsSUFBYSxtQkFBbUIsMkJBQWhDLE1BQWEsbUJBQW1CO0lBRTVCLE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBdUM7UUFDcEQsYUFBYSxDQUFDLFdBQVcsR0FBRztZQUN4QixXQUFXLEVBQUU7Z0JBQ1QsR0FBRyxrQkFBa0IsQ0FBQyxlQUFlO2FBQ3hDO1NBQ0osQ0FBQztRQUNGLE1BQU0sa0JBQWtCLEdBQWE7WUFDakMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxXQUFXO1lBQ25DLE9BQU8sRUFBRSxpQkFBaUI7U0FDN0IsQ0FBQztRQUNGLE1BQU0sZ0JBQWdCLEdBQWE7WUFDL0IsUUFBUSxFQUFFLGFBQWEsQ0FBQyxvQkFBb0I7WUFDNUMsT0FBTyxFQUFFLFVBQVU7U0FDdEIsQ0FBQztRQUNGLE1BQU0sWUFBWSxHQUFHLHFCQUFtQjthQUNuQyxtQkFBbUIsQ0FDaEIsYUFBYSxDQUFDLGVBQWUsQ0FDaEMsQ0FBQztRQUNOLE9BQU87WUFDSCxNQUFNLEVBQUUscUJBQW1CO1lBQzNCLE9BQU8sRUFBRTtnQkFDTCxHQUFHLFlBQVk7YUFDbEI7WUFDRCxTQUFTLEVBQUU7Z0JBQ1Asa0JBQWtCO2dCQUNsQixnQkFBZ0I7Z0JBQ2hCLGdCQUFnQjthQUNuQjtZQUNELE9BQU8sRUFBRTtnQkFDTCxrQkFBa0I7Z0JBQ2xCLGdCQUFnQjtnQkFDaEIsZ0JBQWdCO2dCQUNoQixHQUFHLFlBQVk7YUFDbEI7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVPLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxHQUErQjtRQUM5RCxNQUFNLHlCQUF5QixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckQsTUFBTSxZQUFZLEdBQUcseUJBQXlCLENBQUMsR0FBRyxDQUM5QyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQ3RDLENBQUM7UUFDRixPQUFPO1lBQ0gsR0FBRyxZQUFZO1NBQ2xCLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FBQTtBQWhEWSxtQkFBbUI7SUFYL0IsTUFBTSxFQUFFO0lBQ1IsTUFBTSxDQUNIO1FBQ0ksU0FBUyxFQUFFO1lBQ1AsZ0JBQWdCO1NBQ25CO1FBQ0QsT0FBTyxFQUFFO1lBQ0wsZ0JBQWdCO1NBQ25CO0tBQ0osQ0FDSjtHQUNZLG1CQUFtQixDQWdEL0I7U0FoRFksbUJBQW1CIn0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { RespuestaCreacionInterface, RespuestaValidacionInterface } from './interfaces/respuesta-validacion.interface';
|
|
2
|
+
import { MongoRepository, Repository } from 'typeorm';
|
|
3
|
+
import { EstrategiaArbol, EstrategiaArbolDefault } from './interfaces/meta-dato-prueba.interface';
|
|
4
|
+
import { PrincipalDto } from '../../principal.dto';
|
|
5
|
+
export declare class BaseDatosHelper {
|
|
6
|
+
static leerArchivo(ruta: string): any;
|
|
7
|
+
static crearDatosRepositorio(repositorio: Repository<any>, rutaDatos: string, dto: any, esMongo?: boolean): Promise<RespuestaCreacionInterface>;
|
|
8
|
+
static validarDTOEnLote(registros: any[], dto: any): Promise<RespuestaValidacionInterface>;
|
|
9
|
+
static guardarEnArbol(rutaArchivo: string, guardarArbol: EstrategiaArbol | EstrategiaArbolDefault, repositorio: Repository<any> | MongoRepository<any>, dto: typeof PrincipalDto): Promise<RespuestaCreacionInterface>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { plainToClass } from 'class-transformer';
|
|
2
|
+
import { validate } from 'class-validator';
|
|
3
|
+
import { readFileSync } from 'fs';
|
|
4
|
+
import { CreacionException } from './excepciones/creacion.exception';
|
|
5
|
+
import { guardarEnArbolDefecto } from './funciones/guardar-tree-lugar';
|
|
6
|
+
import { join } from 'path';
|
|
7
|
+
import { ValidacionException } from './excepciones/validacion.exception';
|
|
8
|
+
import { VacioException } from './excepciones/vacio.exception';
|
|
9
|
+
export class BaseDatosHelper {
|
|
10
|
+
static leerArchivo(ruta) {
|
|
11
|
+
const path = join(__dirname, '../../../../../../../../src', ruta);
|
|
12
|
+
const registros = JSON.parse(readFileSync(path, 'utf-8').toString());
|
|
13
|
+
const estaVacio = registros.length === 0;
|
|
14
|
+
if (estaVacio) {
|
|
15
|
+
throw new VacioException('La lista de datos esta vacia');
|
|
16
|
+
}
|
|
17
|
+
return registros;
|
|
18
|
+
}
|
|
19
|
+
// Metodo principal que lee el archivo, valida e inserta los datos en la bdd
|
|
20
|
+
static async crearDatosRepositorio(repositorio, rutaDatos, dto, esMongo) {
|
|
21
|
+
// se encera la respuesta general de creacion
|
|
22
|
+
const respuesta = {
|
|
23
|
+
creacionDatos: { estado: true, novedades: [] },
|
|
24
|
+
estado: true,
|
|
25
|
+
lecturaArchivo: { estado: true, novedades: [], path: rutaDatos },
|
|
26
|
+
validacionDatos: { estado: true, novedades: [] },
|
|
27
|
+
};
|
|
28
|
+
let registrosParseados;
|
|
29
|
+
// Se obtienen los datos parseados
|
|
30
|
+
try {
|
|
31
|
+
registrosParseados = BaseDatosHelper.leerArchivo(rutaDatos);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
// Si ocurre un error en la lectura del archivo se modifica el objeto
|
|
35
|
+
// y se lanza la excepcion
|
|
36
|
+
respuesta.estado = false;
|
|
37
|
+
respuesta.lecturaArchivo.estado = false;
|
|
38
|
+
respuesta.lecturaArchivo.novedades = error;
|
|
39
|
+
respuesta.lecturaArchivo.path = rutaDatos;
|
|
40
|
+
throw new CreacionException(respuesta);
|
|
41
|
+
}
|
|
42
|
+
// Validacion de datos
|
|
43
|
+
let respuestaValidacion;
|
|
44
|
+
try {
|
|
45
|
+
respuestaValidacion = await BaseDatosHelper.validarDTOEnLote(registrosParseados, dto);
|
|
46
|
+
respuesta.validacionDatos = respuestaValidacion;
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
respuesta.validacionDatos = error;
|
|
50
|
+
respuesta.estado = false;
|
|
51
|
+
throw new CreacionException(respuesta);
|
|
52
|
+
}
|
|
53
|
+
// Insercion de datos en el repositorio
|
|
54
|
+
try {
|
|
55
|
+
if (esMongo) {
|
|
56
|
+
await repositorio.insertMany(registrosParseados);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
await repositorio.save(registrosParseados);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
respuesta.creacionDatos.estado = false;
|
|
64
|
+
respuesta.creacionDatos.novedades = error;
|
|
65
|
+
throw new CreacionException(respuesta);
|
|
66
|
+
}
|
|
67
|
+
return respuesta;
|
|
68
|
+
}
|
|
69
|
+
static async validarDTOEnLote(registros, dto) {
|
|
70
|
+
const respuesta = {
|
|
71
|
+
novedades: [],
|
|
72
|
+
estado: true,
|
|
73
|
+
};
|
|
74
|
+
for (const registro of registros) {
|
|
75
|
+
if (registro.id) {
|
|
76
|
+
delete registro.id;
|
|
77
|
+
}
|
|
78
|
+
const registroParseado = plainToClass(dto, registro);
|
|
79
|
+
let errores = [];
|
|
80
|
+
try {
|
|
81
|
+
errores = await validate(registroParseado);
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
const novedad = {
|
|
85
|
+
registro,
|
|
86
|
+
errores: error,
|
|
87
|
+
};
|
|
88
|
+
respuesta.novedades.push(novedad);
|
|
89
|
+
respuesta.estado = false;
|
|
90
|
+
}
|
|
91
|
+
const tieneErrores = errores.length > 0;
|
|
92
|
+
if (tieneErrores) {
|
|
93
|
+
const novedad = {
|
|
94
|
+
registro,
|
|
95
|
+
errores,
|
|
96
|
+
};
|
|
97
|
+
respuesta.novedades.push(novedad);
|
|
98
|
+
respuesta.estado = false;
|
|
99
|
+
throw new ValidacionException(respuesta);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return respuesta;
|
|
103
|
+
}
|
|
104
|
+
static async guardarEnArbol(rutaArchivo, guardarArbol, repositorio, dto) {
|
|
105
|
+
const respuesta = {
|
|
106
|
+
creacionDatos: { estado: true, novedades: [] },
|
|
107
|
+
estado: true,
|
|
108
|
+
lecturaArchivo: { estado: true, novedades: [], path: rutaArchivo },
|
|
109
|
+
validacionDatos: { estado: true, novedades: [] },
|
|
110
|
+
};
|
|
111
|
+
let registrosParseados;
|
|
112
|
+
try {
|
|
113
|
+
registrosParseados = BaseDatosHelper.leerArchivo(rutaArchivo);
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
respuesta.lecturaArchivo.estado = false;
|
|
117
|
+
respuesta.lecturaArchivo.novedades = error;
|
|
118
|
+
throw new CreacionException(respuesta);
|
|
119
|
+
}
|
|
120
|
+
let respuestaValidacion;
|
|
121
|
+
try {
|
|
122
|
+
respuestaValidacion = await BaseDatosHelper.validarDTOEnLote(registrosParseados, dto);
|
|
123
|
+
respuesta.validacionDatos = respuestaValidacion;
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
respuesta.validacionDatos = error;
|
|
127
|
+
respuesta.estado = false;
|
|
128
|
+
throw new CreacionException(respuesta);
|
|
129
|
+
}
|
|
130
|
+
try {
|
|
131
|
+
const tieneCBDefecto = !(typeof guardarArbol === 'function');
|
|
132
|
+
if (tieneCBDefecto) {
|
|
133
|
+
guardarArbol = guardarArbol;
|
|
134
|
+
const nombrePadre = guardarArbol.nombreAtributoPadre;
|
|
135
|
+
await guardarEnArbolDefecto(registrosParseados, repositorio, nombrePadre);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
await guardarArbol(registrosParseados, repositorio);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
respuesta.creacionDatos.estado = false;
|
|
143
|
+
respuesta.creacionDatos.novedades = error;
|
|
144
|
+
respuesta.estado = false;
|
|
145
|
+
throw new CreacionException(respuesta);
|
|
146
|
+
}
|
|
147
|
+
return respuesta;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kYXRvcy5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL21vZHVsb3MtY29uZmlndXJhY2lvbi9iYXNlLWRhdG9zL2Jhc2UtZGF0b3MuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFLekMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLElBQUksQ0FBQztBQUVoQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRXZFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUc3RCxNQUFNLE9BQU8sZUFBZTtJQUN4QixNQUFNLENBQUMsV0FBVyxDQUFDLElBQVk7UUFDM0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSw2QkFBNkIsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUN4QixZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUN6QyxDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFDekMsSUFBSSxTQUFTLEVBQUU7WUFDWCxNQUFNLElBQUksY0FBYyxDQUFDLDhCQUE4QixDQUFDLENBQUM7U0FDNUQ7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsNEVBQTRFO0lB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
|