@manticore-labs/nest 0.1.2 → 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 +4 -19
- package/build/main/index.d.ts +8 -0
- package/build/main/index.js +11 -1
- 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/module/index.d.ts +8 -0
- package/build/module/index.js +11 -1
- 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/package.json +1 -1
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { pickBy } from 'lodash';
|
|
2
|
+
import { ESQUEMA_PATH, ESQUEMA_QUERY, RESPUESTAS_HTTP, SEGURIDAD_PATH_GENERICA } from './constantes/esquemas-genericos';
|
|
3
|
+
import { MlabSwaggerStore } from './mlab-swagger.store';
|
|
4
|
+
export class MlabSwaggerHelper {
|
|
5
|
+
// Empaquetar esquemas
|
|
6
|
+
static empaquetarEsquema(metaEsquema) {
|
|
7
|
+
const esquema = metaEsquema.definicion;
|
|
8
|
+
const atributos = Object.keys(esquema);
|
|
9
|
+
const esquemaTransformadoInicial = {};
|
|
10
|
+
const propieades = atributos.reduce((acumulador, atributo) => {
|
|
11
|
+
const definicionTipo = esquema[atributo];
|
|
12
|
+
const esquemaDefinido = esquema[atributo];
|
|
13
|
+
const esObjeto = definicionTipo.tipo === 'object';
|
|
14
|
+
if (esObjeto) {
|
|
15
|
+
const esquemaObjeto = definicionTipo;
|
|
16
|
+
const referenciaEsquema = esquemaObjeto.anidado;
|
|
17
|
+
const nombreEsquema = typeof referenciaEsquema === 'string' ? referenciaEsquema : referenciaEsquema.name;
|
|
18
|
+
const esquemaAnidado = MlabSwaggerStore.obtenerEsquema(nombreEsquema);
|
|
19
|
+
acumulador[atributo] = {
|
|
20
|
+
...MlabSwaggerHelper.empaquetarEsquema(esquemaAnidado)[nombreEsquema],
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
acumulador[atributo] = {
|
|
25
|
+
type: definicionTipo.tipo.toString(),
|
|
26
|
+
maxLength: esquemaDefinido.maxLength,
|
|
27
|
+
minLength: esquemaDefinido.minLength,
|
|
28
|
+
maximum: esquemaDefinido.maximum,
|
|
29
|
+
minimum: esquemaDefinido.minimum,
|
|
30
|
+
exclusiveMaximum: esquemaDefinido.exclusiveMaximum,
|
|
31
|
+
exclusiveMinimum: esquemaDefinido.exclusiveMinimum,
|
|
32
|
+
minItems: esquemaDefinido.minItems,
|
|
33
|
+
maxItems: esquemaDefinido.maxItems,
|
|
34
|
+
pattern: esquemaDefinido.pattern,
|
|
35
|
+
};
|
|
36
|
+
acumulador[atributo] = pickBy(acumulador[atributo], v => v !== undefined);
|
|
37
|
+
}
|
|
38
|
+
return acumulador;
|
|
39
|
+
}, {});
|
|
40
|
+
esquemaTransformadoInicial[`${metaEsquema.nombre}`] = {
|
|
41
|
+
type: 'object',
|
|
42
|
+
properties: {
|
|
43
|
+
...propieades,
|
|
44
|
+
},
|
|
45
|
+
required: metaEsquema.camposRequeridos,
|
|
46
|
+
};
|
|
47
|
+
esquemaTransformadoInicial[`${metaEsquema.nombre}`] = pickBy(esquemaTransformadoInicial[`${metaEsquema.nombre}`], v => v !== undefined);
|
|
48
|
+
return esquemaTransformadoInicial;
|
|
49
|
+
}
|
|
50
|
+
static generarMetodoPostPutPatch(descripcion, esquemaEditar, nombreEsquema) {
|
|
51
|
+
return {
|
|
52
|
+
description: descripcion,
|
|
53
|
+
requestBody: {
|
|
54
|
+
content: {
|
|
55
|
+
'application/json': {
|
|
56
|
+
schema: {
|
|
57
|
+
...esquemaEditar[`${nombreEsquema}`],
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
responses: {
|
|
63
|
+
...RESPUESTAS_HTTP,
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
static generarPathConId(metodoEditarUno, titulo, seguridad = false) {
|
|
68
|
+
return {
|
|
69
|
+
get: {
|
|
70
|
+
...ESQUEMA_PATH,
|
|
71
|
+
...pickBy(SEGURIDAD_PATH_GENERICA, _ => seguridad),
|
|
72
|
+
responses: {
|
|
73
|
+
...RESPUESTAS_HTTP,
|
|
74
|
+
},
|
|
75
|
+
...MlabSwaggerHelper.generarTags(titulo),
|
|
76
|
+
},
|
|
77
|
+
put: {
|
|
78
|
+
...metodoEditarUno,
|
|
79
|
+
...ESQUEMA_PATH,
|
|
80
|
+
...pickBy(SEGURIDAD_PATH_GENERICA, _ => seguridad),
|
|
81
|
+
responses: {
|
|
82
|
+
...RESPUESTAS_HTTP,
|
|
83
|
+
},
|
|
84
|
+
...MlabSwaggerHelper.generarTags(titulo),
|
|
85
|
+
},
|
|
86
|
+
delete: {
|
|
87
|
+
...ESQUEMA_PATH,
|
|
88
|
+
...pickBy(SEGURIDAD_PATH_GENERICA, _ => seguridad),
|
|
89
|
+
responses: {
|
|
90
|
+
...RESPUESTAS_HTTP,
|
|
91
|
+
},
|
|
92
|
+
...MlabSwaggerHelper.generarTags(titulo),
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
static generarPathSinId(metodoCrearUno, titulo, seguridad = false) {
|
|
97
|
+
return {
|
|
98
|
+
get: {
|
|
99
|
+
...ESQUEMA_QUERY,
|
|
100
|
+
...pickBy(SEGURIDAD_PATH_GENERICA, _ => seguridad),
|
|
101
|
+
responses: {
|
|
102
|
+
...RESPUESTAS_HTTP,
|
|
103
|
+
},
|
|
104
|
+
...MlabSwaggerHelper.generarTags(titulo),
|
|
105
|
+
},
|
|
106
|
+
post: {
|
|
107
|
+
...metodoCrearUno,
|
|
108
|
+
...pickBy(SEGURIDAD_PATH_GENERICA, _ => seguridad),
|
|
109
|
+
responses: {
|
|
110
|
+
...RESPUESTAS_HTTP,
|
|
111
|
+
},
|
|
112
|
+
...MlabSwaggerHelper.generarTags(titulo),
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
static generarTags(titulo) {
|
|
117
|
+
return {
|
|
118
|
+
tags: [
|
|
119
|
+
{
|
|
120
|
+
description: `CRUD de "${titulo.toLowerCase()}"`,
|
|
121
|
+
},
|
|
122
|
+
],
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWxhYi1zd2FnZ2VyLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbW9kdWxvcy1jb25maWd1cmFjaW9uL21sYWItc3dhZ2dlci9tbGFiLXN3YWdnZXItaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFDOUIsT0FBTyxFQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLHVCQUF1QixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDdEgsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixzQkFBc0I7SUFDdEIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFdBQXdCO1FBQzdDLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7UUFDdkMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QyxNQUFNLDBCQUEwQixHQUFHLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUMvQixDQUFDLFVBQW1FLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO1lBQ3RGLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUEyQixDQUFDO1lBQ3BFLE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDO1lBQ2xELElBQUksUUFBUSxFQUFFO2dCQUNWLE1BQU0sYUFBYSxHQUFJLGNBQWdDLENBQUM7Z0JBQ3hELE1BQU0saUJBQWlCLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQztnQkFDaEQsTUFBTSxhQUFhLEdBQUcsT0FBTyxpQkFBaUIsS0FBSyxRQUFRLENB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
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DynamicModule, INestApplication } from '@nestjs/common';
|
|
2
|
+
import { PrePlantilla } from './interfaces/plantilla.interface';
|
|
3
|
+
export declare class MlabSwaggerModule {
|
|
4
|
+
static registrar(moduloRef: any, opciones: PrePlantilla): typeof MlabSwaggerModule;
|
|
5
|
+
static porRaiz(pathRaiz?: string): DynamicModule;
|
|
6
|
+
static setup(app: INestApplication): void;
|
|
7
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
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 MlabSwaggerModule_1;
|
|
8
|
+
import { Global, Module } from '@nestjs/common';
|
|
9
|
+
import { MlabSwaggerStore } from './mlab-swagger.store';
|
|
10
|
+
import { MlabSwaggerCoreModule } from './mlab-swagger-core.module';
|
|
11
|
+
import { MlabSwaggerService } from './mlab-swagger.service';
|
|
12
|
+
let MlabSwaggerModule = MlabSwaggerModule_1 = class MlabSwaggerModule {
|
|
13
|
+
static registrar(moduloRef, opciones) {
|
|
14
|
+
const opcionesCompletas = {
|
|
15
|
+
modulo: moduloRef,
|
|
16
|
+
...opciones,
|
|
17
|
+
};
|
|
18
|
+
MlabSwaggerStore.agregarEsquemas(opcionesCompletas);
|
|
19
|
+
return MlabSwaggerModule_1;
|
|
20
|
+
}
|
|
21
|
+
static porRaiz(pathRaiz = 'api') {
|
|
22
|
+
return MlabSwaggerCoreModule.forRoot(pathRaiz);
|
|
23
|
+
}
|
|
24
|
+
static setup(app) {
|
|
25
|
+
MlabSwaggerService.construirAPI(app);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
MlabSwaggerModule = MlabSwaggerModule_1 = __decorate([
|
|
29
|
+
Global(),
|
|
30
|
+
Module({})
|
|
31
|
+
], MlabSwaggerModule);
|
|
32
|
+
export { MlabSwaggerModule };
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWxhYi1zd2FnZ2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbW9kdWxvcy1jb25maWd1cmFjaW9uL21sYWItc3dhZ2dlci9tbGFiLXN3YWdnZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxPQUFPLEVBQWdCLE1BQU0sRUFBb0IsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFakUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFNMUQsSUFBYSxpQkFBaUIseUJBQTlCLE1BQWEsaUJBQWlCO0lBQzFCLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBYyxFQUFFLFFBQXNCO1FBQ25ELE1BQU0saUJBQWlCLEdBQXVCO1lBQzFDLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLEdBQUcsUUFBUTtTQUNkLENBQUM7UUFDRixnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNwRCxPQUFPLG1CQUFpQixDQUFDO0lBQzdCLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQW1CLEtBQUs7UUFDbkMsT0FBTyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBcUI7UUFDOUIsa0JBQWtCLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Q0FDSixDQUFBO0FBakJZLGlCQUFpQjtJQUo3QixNQUFNLEVBQUU7SUFDUixNQUFNLENBQ0gsRUFBRSxDQUNMO0dBQ1ksaUJBQWlCLENBaUI3QjtTQWpCWSxpQkFBaUIifQ==
|
|
@@ -0,0 +1,86 @@
|
|
|
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 MlabSwaggerService_1;
|
|
8
|
+
import { Injectable } from '@nestjs/common';
|
|
9
|
+
import { MlabSwaggerStore } from './mlab-swagger.store';
|
|
10
|
+
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
|
|
11
|
+
import { MlabSwaggerHelper } from './mlab-swagger-helper';
|
|
12
|
+
import { ESQUEMA_SEGURIDAD_GENERICO, } from './constantes/esquemas-genericos';
|
|
13
|
+
import { isUndefined, negate, pickBy } from 'lodash';
|
|
14
|
+
let MlabSwaggerService = MlabSwaggerService_1 = class MlabSwaggerService {
|
|
15
|
+
static construirAPI(app) {
|
|
16
|
+
for (const esquema of MlabSwaggerStore.obtenerEsquemas) {
|
|
17
|
+
// logica para crear documentacion
|
|
18
|
+
const documento = MlabSwaggerService_1.generarDocumentacion(esquema);
|
|
19
|
+
const optionsGenericas = new DocumentBuilder()
|
|
20
|
+
.setTitle(esquema.titulo)
|
|
21
|
+
.build();
|
|
22
|
+
const documentoGenerico = SwaggerModule.createDocument(app, optionsGenericas, {
|
|
23
|
+
include: [esquema.modulo],
|
|
24
|
+
});
|
|
25
|
+
documentoGenerico.paths = {
|
|
26
|
+
...documentoGenerico.paths,
|
|
27
|
+
...documento.paths,
|
|
28
|
+
};
|
|
29
|
+
documentoGenerico.security = {
|
|
30
|
+
...documentoGenerico.security,
|
|
31
|
+
...documento.security,
|
|
32
|
+
};
|
|
33
|
+
documentoGenerico.components.schemas = {
|
|
34
|
+
...documentoGenerico.components.schemas,
|
|
35
|
+
...documento.components.schemas,
|
|
36
|
+
};
|
|
37
|
+
SwaggerModule.setup(`${MlabSwaggerStore.pathRaiz}${esquema.path}`, app, documentoGenerico, { explorer: true });
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
static generarDocumentacion(plantilla) {
|
|
41
|
+
const esquemaSeguridad = {
|
|
42
|
+
securitySchemes: {
|
|
43
|
+
...ESQUEMA_SEGURIDAD_GENERICO,
|
|
44
|
+
...pickBy(plantilla.esquemaSeguridad, negate(isUndefined)),
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
const documentoPlantillaBase = {
|
|
48
|
+
openapi: '3.0.0',
|
|
49
|
+
paths: {},
|
|
50
|
+
info: {
|
|
51
|
+
title: `${plantilla.titulo}`,
|
|
52
|
+
version: `${plantilla.version}`,
|
|
53
|
+
},
|
|
54
|
+
components: {
|
|
55
|
+
...pickBy(esquemaSeguridad, _ => plantilla.protegerRutas),
|
|
56
|
+
schemas: {},
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
const nombreEsquemaCrear = typeof plantilla.esquemas.crear === 'string' ? plantilla.esquemas.crear : plantilla.esquemas.crear.name;
|
|
60
|
+
const nombreEsquemaEditar = typeof plantilla.esquemas.editar === 'string' ? plantilla.esquemas.editar : plantilla.esquemas.editar.name;
|
|
61
|
+
// Se obtienen los meta esquemas almacenados en el store por los decoradores
|
|
62
|
+
const metaEsquemaCrear = MlabSwaggerStore.obtenerEsquema(nombreEsquemaCrear);
|
|
63
|
+
const metaEsquemaEditar = MlabSwaggerStore.obtenerEsquema(nombreEsquemaEditar);
|
|
64
|
+
const esquemaCrear = MlabSwaggerHelper
|
|
65
|
+
.empaquetarEsquema(metaEsquemaCrear);
|
|
66
|
+
const esquemaEditar = MlabSwaggerHelper
|
|
67
|
+
.empaquetarEsquema(metaEsquemaEditar);
|
|
68
|
+
const metodoCrearUno = MlabSwaggerHelper.generarMetodoPostPutPatch(plantilla.metodosCrud.crearUno.descripcion, esquemaCrear, metaEsquemaCrear.nombre);
|
|
69
|
+
const metodoEditarUno = MlabSwaggerHelper.generarMetodoPostPutPatch(plantilla.metodosCrud.actualizarUno.descripcion, esquemaEditar, metaEsquemaEditar.nombre);
|
|
70
|
+
documentoPlantillaBase.paths[`${plantilla.path}`] = MlabSwaggerHelper
|
|
71
|
+
.generarPathSinId(metodoCrearUno, plantilla.titulo, plantilla.protegerRutas);
|
|
72
|
+
documentoPlantillaBase.paths[`${plantilla.path}/{id}`] = MlabSwaggerHelper
|
|
73
|
+
.generarPathConId(metodoEditarUno, plantilla.titulo, plantilla.protegerRutas);
|
|
74
|
+
documentoPlantillaBase.components.schemas = {
|
|
75
|
+
...esquemaCrear,
|
|
76
|
+
...esquemaEditar,
|
|
77
|
+
};
|
|
78
|
+
// console.log(JSON.stringify(documentoPlantillaBase));
|
|
79
|
+
return documentoPlantillaBase;
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
MlabSwaggerService = MlabSwaggerService_1 = __decorate([
|
|
83
|
+
Injectable()
|
|
84
|
+
], MlabSwaggerService);
|
|
85
|
+
export { MlabSwaggerService };
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWxhYi1zd2FnZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL21vZHVsb3MtY29uZmlndXJhY2lvbi9tbGFiLXN3YWdnZXIvbWxhYi1zd2FnZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLE9BQU8sRUFBbUIsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLGVBQWUsRUFBaUIsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFOUUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUNILDBCQUEwQixHQUM3QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUduRCxJQUFhLGtCQUFrQiwwQkFBL0IsTUFBYSxrQkFBa0I7SUFFM0IsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFxQjtRQUNyQyxLQUFLLE1BQU0sT0FBTyxJQUFJLGdCQUFnQixDQUFDLGVBQWUsRUFBRTtZQUNwRCxrQ0FBa0M7WUFDbEMsTUFBTSxTQUFTLEdBQUcsb0JBQWtCLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbkUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGVBQWUsRUFBRTtpQkFDekMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7aUJBQ3hCLEtBQUssRUFBRSxDQUFDO1lBQ2IsTUFBTSxpQkFBaUIsR0FBRyxhQUFhLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDMUUsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQzthQUM1QixDQUFDLENBQUM7WUFDSCxpQkFB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
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { MetaEsquema, PlantillaInterface } from './interfaces/plantilla.interface';
|
|
2
|
+
export declare class MlabSwaggerStore {
|
|
3
|
+
private static readonly esquemas;
|
|
4
|
+
static pathRaiz: string;
|
|
5
|
+
static metadatos: any[];
|
|
6
|
+
static propiedadesBrutas: any[];
|
|
7
|
+
static agregarMetadatos(target: any): void;
|
|
8
|
+
static agregarEsquemas(esquema: PlantillaInterface): void;
|
|
9
|
+
static get obtenerEsquemas(): PlantillaInterface[];
|
|
10
|
+
static obtenerEsquema(nombreEsquema: string): MetaEsquema;
|
|
11
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { API_BODY_METADATA } from './constantes/constantes';
|
|
2
|
+
export class MlabSwaggerStore {
|
|
3
|
+
static agregarMetadatos(target) {
|
|
4
|
+
const nombreClase = target.constructor.name;
|
|
5
|
+
const nombresClases = MlabSwaggerStore.metadatos.map(t => t.constructor.name);
|
|
6
|
+
const yaFueAgregado = nombresClases.some(nombre => nombre === nombreClase);
|
|
7
|
+
if (!yaFueAgregado) {
|
|
8
|
+
MlabSwaggerStore.metadatos.push(target);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
static agregarEsquemas(esquema) {
|
|
12
|
+
this.esquemas.push(esquema);
|
|
13
|
+
}
|
|
14
|
+
static get obtenerEsquemas() {
|
|
15
|
+
return this.esquemas;
|
|
16
|
+
}
|
|
17
|
+
static obtenerEsquema(nombreEsquema) {
|
|
18
|
+
const propiedadesBrutas = MlabSwaggerStore.metadatos.map((target) => {
|
|
19
|
+
return Reflect.getMetadata(API_BODY_METADATA, target);
|
|
20
|
+
});
|
|
21
|
+
const preEsquemas = propiedadesBrutas.filter((preEsquema) => {
|
|
22
|
+
const llave = Object.keys(preEsquema)[0];
|
|
23
|
+
const esquema = preEsquema[llave];
|
|
24
|
+
return esquema.propietario === nombreEsquema;
|
|
25
|
+
});
|
|
26
|
+
const esquemaEntidad = preEsquemas[0];
|
|
27
|
+
const campos = Object.keys(esquemaEntidad);
|
|
28
|
+
const requeridos = campos.filter((campo) => {
|
|
29
|
+
return esquemaEntidad[campo].requerido;
|
|
30
|
+
});
|
|
31
|
+
return {
|
|
32
|
+
nombre: nombreEsquema,
|
|
33
|
+
definicion: {
|
|
34
|
+
...preEsquemas[0],
|
|
35
|
+
},
|
|
36
|
+
camposRequeridos: [
|
|
37
|
+
...requeridos,
|
|
38
|
+
],
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
MlabSwaggerStore.esquemas = [];
|
|
43
|
+
MlabSwaggerStore.pathRaiz = 'api';
|
|
44
|
+
MlabSwaggerStore.metadatos = [];
|
|
45
|
+
MlabSwaggerStore.propiedadesBrutas = [];
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWxhYi1zd2FnZ2VyLnN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2R1bG9zLWNvbmZpZ3VyYWNpb24vbWxhYi1zd2FnZ2VyL21sYWItc3dhZ2dlci5zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRCxNQUFNLE9BQU8sZ0JBQWdCO0lBT3pCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNO1FBQzFCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQzVDLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlFLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNoQixnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzNDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBMkI7UUFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELE1BQU0sS0FBSyxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxhQUFxQjtRQUN2QyxNQUFNLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQ3BELENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDUCxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDMUQsQ0FBQyxDQUNKLENBQUM7UUFDRixNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQ3hDLENBQUMsVUFBbUMsRUFBRSxFQUFFO1lBQ3BDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sT0FBTyxDQUFDLFdBQVcsS0FBSyxhQUFhLENBQUM7UUFDakQsQ0FBQyxDQUNKLENBQUM7UUFDRixNQUFNLGNBQWMsR0FBWSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUM1QixDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ2QsT0FBTyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzNDLENBQUMsQ0FDSixDQUFDO1FBQ0YsT0FBTztZQUNILE1BQU0sRUFBRSxhQUFhO1lBQ3JCLFVBQVUsRUFBRTtnQkFDUixHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUM7YUFDcEI7WUFDRCxnQkFBZ0IsRUFBRTtnQkFDZCxHQUFHLFVBQVU7YUFDaEI7U0FDSixDQUFDO0lBQ04sQ0FBQzs7QUFwRHVCLHlCQUFRLEdBQXlCLEVBQUUsQ0FBQztBQUNyRCx5QkFBUSxHQUFXLEtBQUssQ0FBQztBQUV6QiwwQkFBUyxHQUFVLEVBQUUsQ0FBQztBQUN0QixrQ0FBaUIsR0FBVSxFQUFFLENBQUMifQ==
|