@manticore-labs/nest 0.0.72 → 0.0.73

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/.circleci/config.yml +47 -47
  2. package/.idea/codeStyles/Project.xml +37 -37
  3. package/.idea/codeStyles/codeStyleConfig.xml +4 -4
  4. package/.idea/encodings.xml +3 -3
  5. package/.idea/inspectionProfiles/Project_Default.xml +5 -5
  6. package/.idea/manticore-labs-nest.iml +11 -11
  7. package/.idea/misc.xml +5 -5
  8. package/.idea/modules.xml +7 -7
  9. package/.idea/vcs.xml +5 -5
  10. package/.idea/workspace.xml +77 -399
  11. package/LICENSE +8 -8
  12. package/README.1.md +116 -116
  13. package/README.md +1 -1
  14. package/build/main/index.d.ts +42 -42
  15. package/build/main/index.js +25 -25
  16. package/build/main/lib/auth0/actualizar-usuario-cuenta-dto/actualizar-usuario-cuenta-dto.d.ts +5 -5
  17. package/build/main/lib/auth0/actualizar-usuario-cuenta-dto/actualizar-usuario-cuenta-dto.js +24 -24
  18. package/build/main/lib/auth0/actualizar-usuario-dto/actualizar-usuario-dto.d.ts +5 -5
  19. package/build/main/lib/auth0/actualizar-usuario-dto/actualizar-usuario-dto.js +24 -24
  20. package/build/main/lib/auth0/auth0.controller.d.ts +40 -40
  21. package/build/main/lib/auth0/auth0.controller.js +537 -537
  22. package/build/main/lib/auth0/auth0.service.d.ts +69 -69
  23. package/build/main/lib/auth0/auth0.service.js +604 -604
  24. package/build/main/lib/auth0/crear-usuario-dto/crear-usuario-dto.d.ts +5 -5
  25. package/build/main/lib/auth0/crear-usuario-dto/crear-usuario-dto.js +25 -25
  26. package/build/main/lib/auth0/interfaces/busqueda-nombre.d.ts +3 -3
  27. package/build/main/lib/auth0/interfaces/busqueda-nombre.js +2 -2
  28. package/build/main/lib/auth0/interfaces/funciones-seguridad.d.ts +10 -10
  29. package/build/main/lib/auth0/interfaces/funciones-seguridad.js +2 -2
  30. package/build/main/lib/auth0/interfaces/mensajes-controlador.d.ts +5 -5
  31. package/build/main/lib/auth0/interfaces/mensajes-controlador.js +2 -2
  32. package/build/main/lib/auth0/seguridad-jwt-moviles/check-jwt.d.ts +2 -2
  33. package/build/main/lib/auth0/seguridad-jwt-moviles/check-jwt.js +7 -7
  34. package/build/main/lib/expresiones-regulares/letras-espacios-tildes-enie.d.ts +1 -1
  35. package/build/main/lib/expresiones-regulares/letras-espacios-tildes-enie.js +3 -3
  36. package/build/main/lib/funciones-util/buscar-registro.d.ts +1 -1
  37. package/build/main/lib/funciones-util/buscar-registro.js +492 -440
  38. package/build/main/lib/funciones-util/buscar-un-registro-por-id.d.ts +1 -1
  39. package/build/main/lib/funciones-util/buscar-un-registro-por-id.js +25 -25
  40. package/build/main/lib/funciones-util/buscar-where-or.d.ts +1 -1
  41. package/build/main/lib/funciones-util/buscar-where-or.js +33 -33
  42. package/build/main/lib/funciones-util/contar-registros.d.ts +1 -1
  43. package/build/main/lib/funciones-util/contar-registros.js +41 -41
  44. package/build/main/lib/funciones-util/crear-un-registro.d.ts +1 -1
  45. package/build/main/lib/funciones-util/crear-un-registro.js +24 -24
  46. package/build/main/lib/funciones-util/editar-un-registro.d.ts +1 -1
  47. package/build/main/lib/funciones-util/editar-un-registro.js +24 -24
  48. package/build/main/lib/funciones-util/eliminar-uno.d.ts +1 -1
  49. package/build/main/lib/funciones-util/eliminar-uno.js +35 -35
  50. package/build/main/lib/funciones-util/typeorm/valor-esta-dentro-del-arreglo.d.ts +2 -2
  51. package/build/main/lib/funciones-util/typeorm/valor-esta-dentro-del-arreglo.js +21 -21
  52. package/build/main/lib/interfaces-util/arreglo-funciones-booleanas.d.ts +4 -4
  53. package/build/main/lib/interfaces-util/arreglo-funciones-booleanas.js +2 -2
  54. package/build/main/lib/interfaces-util/broadcast-join.gateway.d.ts +14 -14
  55. package/build/main/lib/interfaces-util/broadcast-join.gateway.js +2 -2
  56. package/build/main/lib/interfaces-util/campos-a-buscar.d.ts +9 -9
  57. package/build/main/lib/interfaces-util/campos-a-buscar.js +9 -9
  58. package/build/main/lib/interfaces-util/delete-service.d.ts +12 -12
  59. package/build/main/lib/interfaces-util/delete-service.js +2 -2
  60. package/build/main/lib/interfaces-util/dto.d.ts +4 -4
  61. package/build/main/lib/interfaces-util/dto.js +2 -2
  62. package/build/main/lib/interfaces-util/find-where-relations.d.ts +9 -9
  63. package/build/main/lib/interfaces-util/find-where-relations.js +2 -2
  64. package/build/main/lib/interfaces-util/funciones-seguridad.d.ts +13 -13
  65. package/build/main/lib/interfaces-util/funciones-seguridad.js +2 -2
  66. package/build/main/lib/interfaces-util/funciones.gateway.d.ts +5 -5
  67. package/build/main/lib/interfaces-util/funciones.gateway.js +2 -2
  68. package/build/main/lib/interfaces-util/mensajes-controller.d.ts +6 -6
  69. package/build/main/lib/interfaces-util/mensajes-controller.js +2 -2
  70. package/build/main/lib/interfaces-util/politicas-de-seguridad.d.ts +17 -17
  71. package/build/main/lib/interfaces-util/politicas-de-seguridad.js +2 -2
  72. package/build/main/lib/interfaces-util/respuesta-general.gateway.d.ts +5 -5
  73. package/build/main/lib/interfaces-util/respuesta-general.gateway.js +2 -2
  74. package/build/main/lib/menu/entities/menu-entity.d.ts +13 -13
  75. package/build/main/lib/menu/entities/menu-entity.js +93 -93
  76. package/build/main/lib/one-signal/interfaces/funciones-seguridad.d.ts +9 -9
  77. package/build/main/lib/one-signal/interfaces/funciones-seguridad.js +2 -2
  78. package/build/main/lib/one-signal/interfaces/one-signal-device.d.ts +19 -19
  79. package/build/main/lib/one-signal/interfaces/one-signal-device.js +2 -2
  80. package/build/main/lib/one-signal/interfaces/one-signal-notification.d.ts +15 -15
  81. package/build/main/lib/one-signal/interfaces/one-signal-notification.js +2 -2
  82. package/build/main/lib/one-signal/interfaces/one-signal-notifications.d.ts +7 -7
  83. package/build/main/lib/one-signal/interfaces/one-signal-notifications.js +2 -2
  84. package/build/main/lib/one-signal/interfaces/one-signal-ok-create-notification-no-players.d.ts +5 -5
  85. package/build/main/lib/one-signal/interfaces/one-signal-ok-create-notification-no-players.js +2 -2
  86. package/build/main/lib/one-signal/interfaces/one-signal-ok-create-notification.d.ts +4 -4
  87. package/build/main/lib/one-signal/interfaces/one-signal-ok-create-notification.js +2 -2
  88. package/build/main/lib/one-signal/interfaces/one-signal-success.d.ts +3 -3
  89. package/build/main/lib/one-signal/interfaces/one-signal-success.js +2 -2
  90. package/build/main/lib/one-signal/interfaces/one-signal-tags.d.ts +3 -3
  91. package/build/main/lib/one-signal/interfaces/one-signal-tags.js +2 -2
  92. package/build/main/lib/one-signal/interfaces/one-signal-view-devices.d.ts +7 -7
  93. package/build/main/lib/one-signal/interfaces/one-signal-view-devices.js +2 -2
  94. package/build/main/lib/one-signal/one-signal.controller.d.ts +15 -15
  95. package/build/main/lib/one-signal/one-signal.controller.js +250 -250
  96. package/build/main/lib/one-signal/one-signal.service.d.ts +32 -32
  97. package/build/main/lib/one-signal/one-signal.service.js +84 -84
  98. package/build/main/lib/politicas/revisar-si-tiene-nombre-permiso.d.ts +1 -1
  99. package/build/main/lib/politicas/revisar-si-tiene-nombre-permiso.js +9 -9
  100. package/build/main/lib/politicas/revisar-si-tiene-rol.d.ts +1 -1
  101. package/build/main/lib/politicas/revisar-si-tiene-rol.js +9 -9
  102. package/build/main/lib/principal.controller.d.ts +20 -20
  103. package/build/main/lib/principal.controller.js +309 -309
  104. package/build/main/lib/principal.dto.d.ts +5 -5
  105. package/build/main/lib/principal.dto.js +21 -21
  106. package/build/main/lib/principal.entity.d.ts +7 -7
  107. package/build/main/lib/principal.entity.js +42 -42
  108. package/build/main/lib/principal.find-many-options.d.ts +14 -14
  109. package/build/main/lib/principal.find-many-options.js +48 -48
  110. package/build/main/lib/principal.find-many-where-or.d.ts +10 -10
  111. package/build/main/lib/principal.find-many-where-or.js +28 -28
  112. package/build/main/lib/principal.gateway.d.ts +35 -35
  113. package/build/main/lib/principal.gateway.js +399 -399
  114. package/build/main/lib/principal.id.d.ts +3 -3
  115. package/build/main/lib/principal.id.js +16 -16
  116. package/build/main/lib/principal.resolver.d.ts +21 -21
  117. package/build/main/lib/principal.resolver.js +343 -343
  118. package/build/main/lib/principal.service.d.ts +38 -38
  119. package/build/main/lib/principal.service.js +261 -256
  120. package/build/main/lib/seguridad/aplicar-politicas-de-seguridad.d.ts +4 -4
  121. package/build/main/lib/seguridad/aplicar-politicas-de-seguridad.js +16 -16
  122. package/build/main/lib/seguridad/funciones/convertir-arreglo-en-arreglo-de-observables.d.ts +3 -3
  123. package/build/main/lib/seguridad/funciones/convertir-arreglo-en-arreglo-de-observables.js +30 -30
  124. package/build/main/lib/seguridad/funciones/index.d.ts +6 -6
  125. package/build/main/lib/seguridad/funciones/index.js +12 -12
  126. package/build/main/lib/seguridad/funciones/obtener-reflector-seguridad.d.ts +1 -1
  127. package/build/main/lib/seguridad/funciones/obtener-reflector-seguridad.js +6 -6
  128. package/build/main/lib/seguridad/funciones/obtener-request.d.ts +1 -1
  129. package/build/main/lib/seguridad/funciones/obtener-request.js +6 -6
  130. package/build/main/lib/seguridad/funciones/obtener-response.d.ts +1 -1
  131. package/build/main/lib/seguridad/funciones/obtener-response.js +6 -6
  132. package/build/main/lib/seguridad/funciones/tiene-acceso-permitido.d.ts +2 -2
  133. package/build/main/lib/seguridad/funciones/tiene-acceso-permitido.js +13 -13
  134. package/build/main/lib/seguridad/seguridad.decorator.d.ts +1 -1
  135. package/build/main/lib/seguridad/seguridad.decorator.js +4 -4
  136. package/build/module/index.d.ts +42 -42
  137. package/build/module/index.js +20 -20
  138. package/build/module/lib/auth0/actualizar-usuario-cuenta-dto/actualizar-usuario-cuenta-dto.d.ts +5 -5
  139. package/build/module/lib/auth0/actualizar-usuario-cuenta-dto/actualizar-usuario-cuenta-dto.js +21 -21
  140. package/build/module/lib/auth0/actualizar-usuario-dto/actualizar-usuario-dto.d.ts +5 -5
  141. package/build/module/lib/auth0/actualizar-usuario-dto/actualizar-usuario-dto.js +21 -21
  142. package/build/module/lib/auth0/auth0.controller.d.ts +40 -40
  143. package/build/module/lib/auth0/auth0.controller.js +535 -535
  144. package/build/module/lib/auth0/auth0.service.d.ts +69 -69
  145. package/build/module/lib/auth0/auth0.service.js +603 -603
  146. package/build/module/lib/auth0/crear-usuario-dto/crear-usuario-dto.d.ts +5 -5
  147. package/build/module/lib/auth0/crear-usuario-dto/crear-usuario-dto.js +22 -22
  148. package/build/module/lib/auth0/interfaces/busqueda-nombre.d.ts +3 -3
  149. package/build/module/lib/auth0/interfaces/funciones-seguridad.d.ts +10 -10
  150. package/build/module/lib/auth0/interfaces/mensajes-controlador.d.ts +5 -5
  151. package/build/module/lib/auth0/seguridad-jwt-moviles/check-jwt.d.ts +2 -2
  152. package/build/module/lib/auth0/seguridad-jwt-moviles/check-jwt.js +4 -4
  153. package/build/module/lib/expresiones-regulares/letras-espacios-tildes-enie.d.ts +1 -1
  154. package/build/module/lib/expresiones-regulares/letras-espacios-tildes-enie.js +1 -1
  155. package/build/module/lib/funciones-util/buscar-registro.d.ts +1 -1
  156. package/build/module/lib/funciones-util/buscar-registro.js +489 -437
  157. package/build/module/lib/funciones-util/buscar-un-registro-por-id.d.ts +1 -1
  158. package/build/module/lib/funciones-util/buscar-un-registro-por-id.js +22 -22
  159. package/build/module/lib/funciones-util/buscar-where-or.d.ts +1 -1
  160. package/build/module/lib/funciones-util/buscar-where-or.js +30 -30
  161. package/build/module/lib/funciones-util/contar-registros.d.ts +1 -1
  162. package/build/module/lib/funciones-util/contar-registros.js +38 -38
  163. package/build/module/lib/funciones-util/crear-un-registro.d.ts +1 -1
  164. package/build/module/lib/funciones-util/crear-un-registro.js +21 -21
  165. package/build/module/lib/funciones-util/editar-un-registro.d.ts +1 -1
  166. package/build/module/lib/funciones-util/editar-un-registro.js +21 -21
  167. package/build/module/lib/funciones-util/eliminar-uno.d.ts +1 -1
  168. package/build/module/lib/funciones-util/eliminar-uno.js +32 -32
  169. package/build/module/lib/funciones-util/typeorm/valor-esta-dentro-del-arreglo.d.ts +2 -2
  170. package/build/module/lib/funciones-util/typeorm/valor-esta-dentro-del-arreglo.js +18 -18
  171. package/build/module/lib/interfaces-util/arreglo-funciones-booleanas.d.ts +4 -4
  172. package/build/module/lib/interfaces-util/broadcast-join.gateway.d.ts +14 -14
  173. package/build/module/lib/interfaces-util/campos-a-buscar.d.ts +9 -9
  174. package/build/module/lib/interfaces-util/campos-a-buscar.js +6 -6
  175. package/build/module/lib/interfaces-util/delete-service.d.ts +12 -12
  176. package/build/module/lib/interfaces-util/dto.d.ts +4 -4
  177. package/build/module/lib/interfaces-util/find-where-relations.d.ts +9 -9
  178. package/build/module/lib/interfaces-util/funciones-seguridad.d.ts +13 -13
  179. package/build/module/lib/interfaces-util/funciones.gateway.d.ts +5 -5
  180. package/build/module/lib/interfaces-util/mensajes-controller.d.ts +6 -6
  181. package/build/module/lib/interfaces-util/politicas-de-seguridad.d.ts +17 -17
  182. package/build/module/lib/interfaces-util/respuesta-general.gateway.d.ts +5 -5
  183. package/build/module/lib/menu/entities/menu-entity.d.ts +13 -13
  184. package/build/module/lib/menu/entities/menu-entity.js +90 -90
  185. package/build/module/lib/one-signal/interfaces/funciones-seguridad.d.ts +9 -9
  186. package/build/module/lib/one-signal/interfaces/one-signal-device.d.ts +19 -19
  187. package/build/module/lib/one-signal/interfaces/one-signal-notification.d.ts +15 -15
  188. package/build/module/lib/one-signal/interfaces/one-signal-notifications.d.ts +7 -7
  189. package/build/module/lib/one-signal/interfaces/one-signal-ok-create-notification-no-players.d.ts +5 -5
  190. package/build/module/lib/one-signal/interfaces/one-signal-ok-create-notification.d.ts +4 -4
  191. package/build/module/lib/one-signal/interfaces/one-signal-success.d.ts +3 -3
  192. package/build/module/lib/one-signal/interfaces/one-signal-tags.d.ts +3 -3
  193. package/build/module/lib/one-signal/interfaces/one-signal-view-devices.d.ts +7 -7
  194. package/build/module/lib/one-signal/one-signal.controller.d.ts +15 -15
  195. package/build/module/lib/one-signal/one-signal.controller.js +248 -248
  196. package/build/module/lib/one-signal/one-signal.service.d.ts +32 -32
  197. package/build/module/lib/one-signal/one-signal.service.js +82 -82
  198. package/build/module/lib/politicas/revisar-si-tiene-nombre-permiso.d.ts +1 -1
  199. package/build/module/lib/politicas/revisar-si-tiene-nombre-permiso.js +6 -6
  200. package/build/module/lib/politicas/revisar-si-tiene-rol.d.ts +1 -1
  201. package/build/module/lib/politicas/revisar-si-tiene-rol.js +6 -6
  202. package/build/module/lib/principal.controller.d.ts +20 -20
  203. package/build/module/lib/principal.controller.js +306 -306
  204. package/build/module/lib/principal.dto.d.ts +5 -5
  205. package/build/module/lib/principal.dto.js +18 -18
  206. package/build/module/lib/principal.entity.d.ts +7 -7
  207. package/build/module/lib/principal.entity.js +39 -39
  208. package/build/module/lib/principal.find-many-options.d.ts +14 -14
  209. package/build/module/lib/principal.find-many-options.js +45 -45
  210. package/build/module/lib/principal.find-many-where-or.d.ts +10 -10
  211. package/build/module/lib/principal.find-many-where-or.js +25 -25
  212. package/build/module/lib/principal.gateway.d.ts +35 -35
  213. package/build/module/lib/principal.gateway.js +396 -396
  214. package/build/module/lib/principal.id.d.ts +3 -3
  215. package/build/module/lib/principal.id.js +13 -13
  216. package/build/module/lib/principal.resolver.d.ts +21 -21
  217. package/build/module/lib/principal.resolver.js +340 -340
  218. package/build/module/lib/principal.service.d.ts +38 -38
  219. package/build/module/lib/principal.service.js +258 -253
  220. package/build/module/lib/seguridad/aplicar-politicas-de-seguridad.d.ts +4 -4
  221. package/build/module/lib/seguridad/aplicar-politicas-de-seguridad.js +13 -13
  222. package/build/module/lib/seguridad/funciones/convertir-arreglo-en-arreglo-de-observables.d.ts +3 -3
  223. package/build/module/lib/seguridad/funciones/convertir-arreglo-en-arreglo-de-observables.js +27 -27
  224. package/build/module/lib/seguridad/funciones/index.d.ts +6 -6
  225. package/build/module/lib/seguridad/funciones/index.js +6 -6
  226. package/build/module/lib/seguridad/funciones/obtener-reflector-seguridad.d.ts +1 -1
  227. package/build/module/lib/seguridad/funciones/obtener-reflector-seguridad.js +3 -3
  228. package/build/module/lib/seguridad/funciones/obtener-request.d.ts +1 -1
  229. package/build/module/lib/seguridad/funciones/obtener-request.js +3 -3
  230. package/build/module/lib/seguridad/funciones/obtener-response.d.ts +1 -1
  231. package/build/module/lib/seguridad/funciones/obtener-response.js +3 -3
  232. package/build/module/lib/seguridad/funciones/tiene-acceso-permitido.d.ts +2 -2
  233. package/build/module/lib/seguridad/funciones/tiene-acceso-permitido.js +10 -10
  234. package/build/module/lib/seguridad/seguridad.decorator.d.ts +1 -1
  235. package/build/module/lib/seguridad/seguridad.decorator.js +2 -2
  236. package/package.json +117 -116
@@ -1,397 +1,397 @@
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 { SubscribeMessage } from "@nestjs/websockets";
8
- import { aplicarPoliticasDeSeguridad } from "./seguridad/aplicar-politicas-de-seguridad";
9
- import { of, from } from "rxjs";
10
- import { mergeMap, map } from "rxjs/operators";
11
- import { buscarVariosRegistros } from "./funciones-util/buscar-registro";
12
- import { PrincipalFindManyOptions } from "./principal.find-many-options";
13
- import { buscarRegistroPorId } from "./funciones-util/buscar-un-registro-por-id";
14
- import { PrincipalId } from "./principal.id";
15
- import { crearUnRegistro } from "./funciones-util/crear-un-registro";
16
- import { eliminarUno } from "./funciones-util/eliminar-uno";
17
- import { editarUnRegistro } from "./funciones-util/editar-un-registro";
18
- import { contarRegistros } from "./funciones-util/contar-registros";
19
- import { buscarWhereOr } from "./funciones-util/buscar-where-or";
20
- const io = require('socket.io-client');
21
- export class PrincipalGateway {
22
- constructor(_ip, _namespace, _secreto, _funciones, _configuracionBroadcast, _funcionesSeguridad, _servicio, _dto, _skip = 0, _take = 30, _mensajes = {
23
- encontrarUno: 'Id incorrecto',
24
- crearUno: 'Registro inválido',
25
- actualizarUno: 'Error al actualizar',
26
- eliminarUno: 'Error al eliminar'
27
- }, contexto) {
28
- this._ip = _ip;
29
- this._namespace = _namespace;
30
- this._secreto = _secreto;
31
- this._funciones = _funciones;
32
- this._configuracionBroadcast = _configuracionBroadcast;
33
- this._funcionesSeguridad = _funcionesSeguridad;
34
- this._servicio = _servicio;
35
- this._dto = _dto;
36
- this._skip = _skip;
37
- this._take = _take;
38
- this._mensajes = _mensajes;
39
- this.contexto = contexto;
40
- }
41
- afterInit(server) {
42
- console.log('Init ' + this._namespace);
43
- if (this._funciones.afterInit) {
44
- console.info('Ejecutando funcion init');
45
- this._funciones.afterInit(server);
46
- }
47
- this.socket = io(this._ip + this._namespace);
48
- this.socket.on('connect', () => {
49
- this.socket
50
- .emit('solicitarEstablecerSocketId', { secreto: this._secreto }, (respuesta) => {
51
- console.log(respuesta);
52
- });
53
- });
54
- this.socket.on('error', (e) => {
55
- console.log('Error', e);
56
- });
57
- this.socket.on('updatedOne', (registroActualizado) => {
58
- console.info('updatedOne: ', registroActualizado);
59
- });
60
- this.socket.on('createdOne', (registroCreado) => {
61
- console.info('createdOne: ', registroCreado);
62
- });
63
- this.socket.on('deletedOne', (registroEliminado) => {
64
- console.info('deletedOne: ', registroEliminado);
65
- });
66
- }
67
- handleConnection(client, ...args) {
68
- console.info(this._namespace + ': conexion de cliente: ', client.id, args);
69
- if (this._funciones.handleConnection) {
70
- console.log('Ejecutando funcion handleConnection');
71
- this._funciones.handleConnection(client, ...args);
72
- }
73
- }
74
- handleDisconnect(client) {
75
- console.info('Empresa: desconexion de cliente: ', client.id);
76
- if (this._funciones.handleDisconnect) {
77
- console.log('Ejecutando funcion handleDisconnect');
78
- this._funciones.handleConnection(client);
79
- }
80
- }
81
- solicitarEstablecerSocketId(socketCliente, datos) {
82
- const secreto = datos.secreto;
83
- if (secreto) {
84
- if (secreto === this._secreto) {
85
- this.socketId = socketCliente.id;
86
- return { mensaje: 'ok' };
87
- }
88
- else {
89
- console.error('No envia secreto correcto', socketCliente.id);
90
- return { error: 400, mensaje: 'Peticion invalida' };
91
- }
92
- }
93
- else {
94
- console.error('No envia secreto', socketCliente.id);
95
- return { error: 400, mensaje: 'Peticion invalida' };
96
- }
97
- }
98
- requestFindAll(socketCliente, datos) {
99
- const tipoPoliticaSeguridad = {
100
- socketio: {
101
- datos,
102
- socketCliente
103
- }
104
- };
105
- const objetoPoliticasDeSeguridad = {
106
- funciones: this._funcionesSeguridad.findAll ? this._funcionesSeguridad.findAll : []
107
- };
108
- const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
109
- return puedeRealizarAccion$
110
- .pipe(mergeMap((puedeRealizarAccion) => {
111
- if (puedeRealizarAccion) {
112
- return from(buscarVariosRegistros(datos.criterioBusqueda, PrincipalFindManyOptions, this._skip, this._take, this._servicio));
113
- }
114
- else {
115
- return of({ error: 403, mensaje: 'No tiene permisos' });
116
- }
117
- }), map((respuesta) => {
118
- if (respuesta.error) {
119
- return respuesta;
120
- }
121
- else {
122
- return { data: respuesta };
123
- }
124
- }));
125
- }
126
- requestFindWhereOr(socketCliente, datos) {
127
- const tipoPoliticaSeguridad = {
128
- socketio: {
129
- datos,
130
- socketCliente
131
- }
132
- };
133
- const objetoPoliticasDeSeguridad = {
134
- funciones: this._funcionesSeguridad.findWhereOr ? this._funcionesSeguridad.findWhereOr : []
135
- };
136
- const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
137
- return puedeRealizarAccion$
138
- .pipe(mergeMap((puedeRealizarAccion) => {
139
- if (puedeRealizarAccion) {
140
- return from(buscarWhereOr(datos.criterioBusqueda, PrincipalFindManyOptions, this._skip, this._take, this._servicio));
141
- }
142
- else {
143
- return of({ error: 403, mensaje: 'No tiene permisos' });
144
- }
145
- }), map((respuesta) => {
146
- if (respuesta.error) {
147
- return respuesta;
148
- }
149
- else {
150
- return { data: respuesta };
151
- }
152
- }));
153
- }
154
- count(socketCliente, datos) {
155
- const tipoPoliticaSeguridad = {
156
- socketio: {
157
- datos,
158
- socketCliente
159
- }
160
- };
161
- const objetoPoliticasDeSeguridad = {
162
- funciones: this._funcionesSeguridad.count ? this._funcionesSeguridad.count : []
163
- };
164
- const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
165
- return puedeRealizarAccion$
166
- .pipe(mergeMap((puedeRealizarAccion) => {
167
- if (puedeRealizarAccion) {
168
- return from(contarRegistros(datos.criterioBusqueda, PrincipalFindManyOptions, this._skip, this._take, this._servicio));
169
- }
170
- else {
171
- return of({ error: 403, mensaje: 'No tiene permisos' });
172
- }
173
- }), map((respuesta) => {
174
- if (respuesta.error) {
175
- return respuesta;
176
- }
177
- else {
178
- return { data: respuesta };
179
- }
180
- }));
181
- }
182
- requestFindOne(socketCliente, datos) {
183
- try {
184
- if (!datos.id || typeof datos.id !== 'string' || Number(datos.id).toString() === "NaN") {
185
- return of({ error: 400, mensaje: this._mensajes.encontrarUno });
186
- }
187
- }
188
- catch (e) {
189
- console.error(e);
190
- return of({ error: 400, mensaje: this._mensajes.encontrarUno });
191
- }
192
- const tipoPoliticaSeguridad = {
193
- socketio: {
194
- datos,
195
- socketCliente
196
- }
197
- };
198
- const objetoPoliticasDeSeguridad = {
199
- funciones: this._funcionesSeguridad.findOne ? this._funcionesSeguridad.findOne : []
200
- };
201
- const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
202
- return puedeRealizarAccion$
203
- .pipe(mergeMap((puedeRealizarAccion) => {
204
- if (puedeRealizarAccion) {
205
- return from(buscarRegistroPorId(PrincipalId, datos.id, this._servicio, this._mensajes.encontrarUno, true));
206
- }
207
- else {
208
- return of({ error: 403, mensaje: 'No tiene permisos' });
209
- }
210
- }), map((respuesta) => {
211
- if (respuesta.error) {
212
- return respuesta;
213
- }
214
- else {
215
- return { data: respuesta };
216
- }
217
- }));
218
- }
219
- requestCreateOne(socketCliente, datos) {
220
- if (!datos.nuevoRegistro || typeof datos.nuevoRegistro !== 'object') {
221
- return of({ error: 400, mensaje: this._mensajes.crearUno });
222
- }
223
- const tipoPoliticaSeguridad = {
224
- socketio: {
225
- datos,
226
- socketCliente
227
- }
228
- };
229
- const objetoPoliticasDeSeguridad = {
230
- funciones: this._funcionesSeguridad.createOne ? this._funcionesSeguridad.createOne : []
231
- };
232
- const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
233
- return puedeRealizarAccion$
234
- .pipe(mergeMap((puedeRealizarAccion) => {
235
- if (puedeRealizarAccion) {
236
- return from(crearUnRegistro(datos.nuevoRegistro, this._servicio, this._dto.CreateDto, this._mensajes.crearUno, true));
237
- }
238
- else {
239
- return of({ error: 403, mensaje: 'No tiene permisos' });
240
- }
241
- }), map((respuesta) => {
242
- if (respuesta.error) {
243
- return respuesta;
244
- }
245
- else {
246
- const tieneConfiguracionDeBroadcast = this._configuracionBroadcast.createOne;
247
- if (tieneConfiguracionDeBroadcast) {
248
- const hacerBroadcast = this._configuracionBroadcast.createOne.broadcast;
249
- const tieneFuncionRoom = this._configuracionBroadcast.createOne.funcionJoin;
250
- if (hacerBroadcast && !tieneFuncionRoom) {
251
- console.info('Ejecutando broadcast');
252
- socketCliente
253
- .broadcast
254
- .emit('createdOne', { data: respuesta });
255
- }
256
- if (tieneFuncionRoom) {
257
- console.info('Ejecutando funcion join');
258
- tieneFuncionRoom(socketCliente, datos, this.contexto);
259
- }
260
- }
261
- return { data: respuesta };
262
- }
263
- }));
264
- }
265
- requestDeleteOne(socketCliente, datos) {
266
- try {
267
- if (!datos.id || typeof datos.id !== 'string' || Number(datos.id).toString() === "NaN") {
268
- return of({ error: 400, mensaje: this._mensajes.encontrarUno });
269
- }
270
- }
271
- catch (e) {
272
- console.error(e);
273
- return of({ error: 400, mensaje: this._mensajes.encontrarUno });
274
- }
275
- const tipoPoliticaSeguridad = {
276
- socketio: {
277
- datos,
278
- socketCliente
279
- }
280
- };
281
- const objetoPoliticasDeSeguridad = {
282
- funciones: this._funcionesSeguridad.deleteOne ? this._funcionesSeguridad.deleteOne : []
283
- };
284
- const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
285
- return puedeRealizarAccion$
286
- .pipe(mergeMap((puedeRealizarAccion) => {
287
- if (puedeRealizarAccion) {
288
- return from(eliminarUno(datos.id, PrincipalId, this._servicio, this._mensajes.eliminarUno, true));
289
- }
290
- else {
291
- return of({ error: 403, mensaje: 'No tiene permisos' });
292
- }
293
- }), map((respuesta) => {
294
- if (respuesta.error) {
295
- return respuesta;
296
- }
297
- else {
298
- const tieneConfiguracionDeBroadcast = this._configuracionBroadcast.deleteOne;
299
- if (tieneConfiguracionDeBroadcast) {
300
- const hacerBroadcast = this._configuracionBroadcast.deleteOne.broadcast;
301
- const tieneFuncionRoom = this._configuracionBroadcast.deleteOne.funcionJoin;
302
- if (hacerBroadcast && !tieneFuncionRoom) {
303
- console.info('Ejecutando broadcast');
304
- socketCliente
305
- .broadcast
306
- .emit('deletedOne', { data: respuesta });
307
- }
308
- if (tieneFuncionRoom) {
309
- console.info('Ejecutando funcion join');
310
- tieneFuncionRoom(socketCliente, datos, this.contexto);
311
- }
312
- }
313
- return { data: respuesta };
314
- }
315
- }));
316
- }
317
- requestUpdateOne(socketCliente, datos) {
318
- if (!datos.registroaActualizar || typeof datos.registroaActualizar !== 'object') {
319
- return of({ error: 400, mensaje: this._mensajes.crearUno });
320
- }
321
- try {
322
- if (!datos.id || typeof datos.id !== 'string' || Number(datos.id).toString() === "NaN") {
323
- return of({ error: 400, mensaje: this._mensajes.encontrarUno });
324
- }
325
- }
326
- catch (e) {
327
- console.error(e);
328
- return of({ error: 400, mensaje: this._mensajes.encontrarUno });
329
- }
330
- const tipoPoliticaSeguridad = {
331
- socketio: {
332
- datos,
333
- socketCliente
334
- }
335
- };
336
- const objetoPoliticasDeSeguridad = {
337
- funciones: this._funcionesSeguridad.updateOne ? this._funcionesSeguridad.updateOne : []
338
- };
339
- const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
340
- return puedeRealizarAccion$
341
- .pipe(mergeMap((puedeRealizarAccion) => {
342
- if (puedeRealizarAccion) {
343
- return from(editarUnRegistro(datos.id, datos.registroaActualizar, this._servicio, this._dto.UpdateDto, this._mensajes.actualizarUno, true));
344
- }
345
- else {
346
- return of({ error: 403, mensaje: 'No tiene permisos' });
347
- }
348
- }), map((respuesta) => {
349
- if (respuesta.error) {
350
- return respuesta;
351
- }
352
- else {
353
- const tieneConfiguracionDeBroadcast = this._configuracionBroadcast.updateOne;
354
- if (tieneConfiguracionDeBroadcast) {
355
- const hacerBroadcast = this._configuracionBroadcast.updateOne.broadcast;
356
- const tieneFuncionRoom = this._configuracionBroadcast.updateOne.funcionJoin;
357
- if (hacerBroadcast && !tieneFuncionRoom) {
358
- console.info('Ejecutando broadcast');
359
- socketCliente
360
- .broadcast
361
- .emit('updatedOne', { data: respuesta });
362
- }
363
- if (tieneFuncionRoom) {
364
- console.info('Ejecutando funcion join');
365
- tieneFuncionRoom(socketCliente, datos, this.contexto);
366
- }
367
- }
368
- return { data: respuesta };
369
- }
370
- }));
371
- }
372
- }
373
- __decorate([
374
- SubscribeMessage('solicitarEstablecerSocketId')
375
- ], PrincipalGateway.prototype, "solicitarEstablecerSocketId", null);
376
- __decorate([
377
- SubscribeMessage('requestFindAll')
378
- ], PrincipalGateway.prototype, "requestFindAll", null);
379
- __decorate([
380
- SubscribeMessage('requestFindWhereOr')
381
- ], PrincipalGateway.prototype, "requestFindWhereOr", null);
382
- __decorate([
383
- SubscribeMessage('requestCount')
384
- ], PrincipalGateway.prototype, "count", null);
385
- __decorate([
386
- SubscribeMessage('requestFindOne')
387
- ], PrincipalGateway.prototype, "requestFindOne", null);
388
- __decorate([
389
- SubscribeMessage('requestCreateOne')
390
- ], PrincipalGateway.prototype, "requestCreateOne", null);
391
- __decorate([
392
- SubscribeMessage('requestDeleteOne')
393
- ], PrincipalGateway.prototype, "requestDeleteOne", null);
394
- __decorate([
395
- SubscribeMessage('requestUpdateOne')
396
- ], PrincipalGateway.prototype, "requestUpdateOne", null);
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 { SubscribeMessage } from "@nestjs/websockets";
8
+ import { aplicarPoliticasDeSeguridad } from "./seguridad/aplicar-politicas-de-seguridad";
9
+ import { of, from } from "rxjs";
10
+ import { mergeMap, map } from "rxjs/operators";
11
+ import { buscarVariosRegistros } from "./funciones-util/buscar-registro";
12
+ import { PrincipalFindManyOptions } from "./principal.find-many-options";
13
+ import { buscarRegistroPorId } from "./funciones-util/buscar-un-registro-por-id";
14
+ import { PrincipalId } from "./principal.id";
15
+ import { crearUnRegistro } from "./funciones-util/crear-un-registro";
16
+ import { eliminarUno } from "./funciones-util/eliminar-uno";
17
+ import { editarUnRegistro } from "./funciones-util/editar-un-registro";
18
+ import { contarRegistros } from "./funciones-util/contar-registros";
19
+ import { buscarWhereOr } from "./funciones-util/buscar-where-or";
20
+ const io = require('socket.io-client');
21
+ export class PrincipalGateway {
22
+ constructor(_ip, _namespace, _secreto, _funciones, _configuracionBroadcast, _funcionesSeguridad, _servicio, _dto, _skip = 0, _take = 30, _mensajes = {
23
+ encontrarUno: 'Id incorrecto',
24
+ crearUno: 'Registro inválido',
25
+ actualizarUno: 'Error al actualizar',
26
+ eliminarUno: 'Error al eliminar'
27
+ }, contexto) {
28
+ this._ip = _ip;
29
+ this._namespace = _namespace;
30
+ this._secreto = _secreto;
31
+ this._funciones = _funciones;
32
+ this._configuracionBroadcast = _configuracionBroadcast;
33
+ this._funcionesSeguridad = _funcionesSeguridad;
34
+ this._servicio = _servicio;
35
+ this._dto = _dto;
36
+ this._skip = _skip;
37
+ this._take = _take;
38
+ this._mensajes = _mensajes;
39
+ this.contexto = contexto;
40
+ }
41
+ afterInit(server) {
42
+ console.log('Init ' + this._namespace);
43
+ if (this._funciones.afterInit) {
44
+ console.info('Ejecutando funcion init');
45
+ this._funciones.afterInit(server);
46
+ }
47
+ this.socket = io(this._ip + this._namespace);
48
+ this.socket.on('connect', () => {
49
+ this.socket
50
+ .emit('solicitarEstablecerSocketId', { secreto: this._secreto }, (respuesta) => {
51
+ console.log(respuesta);
52
+ });
53
+ });
54
+ this.socket.on('error', (e) => {
55
+ console.log('Error', e);
56
+ });
57
+ this.socket.on('updatedOne', (registroActualizado) => {
58
+ console.info('updatedOne: ', registroActualizado);
59
+ });
60
+ this.socket.on('createdOne', (registroCreado) => {
61
+ console.info('createdOne: ', registroCreado);
62
+ });
63
+ this.socket.on('deletedOne', (registroEliminado) => {
64
+ console.info('deletedOne: ', registroEliminado);
65
+ });
66
+ }
67
+ handleConnection(client, ...args) {
68
+ console.info(this._namespace + ': conexion de cliente: ', client.id, args);
69
+ if (this._funciones.handleConnection) {
70
+ console.log('Ejecutando funcion handleConnection');
71
+ this._funciones.handleConnection(client, ...args);
72
+ }
73
+ }
74
+ handleDisconnect(client) {
75
+ console.info('Empresa: desconexion de cliente: ', client.id);
76
+ if (this._funciones.handleDisconnect) {
77
+ console.log('Ejecutando funcion handleDisconnect');
78
+ this._funciones.handleConnection(client);
79
+ }
80
+ }
81
+ solicitarEstablecerSocketId(socketCliente, datos) {
82
+ const secreto = datos.secreto;
83
+ if (secreto) {
84
+ if (secreto === this._secreto) {
85
+ this.socketId = socketCliente.id;
86
+ return { mensaje: 'ok' };
87
+ }
88
+ else {
89
+ console.error('No envia secreto correcto', socketCliente.id);
90
+ return { error: 400, mensaje: 'Peticion invalida' };
91
+ }
92
+ }
93
+ else {
94
+ console.error('No envia secreto', socketCliente.id);
95
+ return { error: 400, mensaje: 'Peticion invalida' };
96
+ }
97
+ }
98
+ requestFindAll(socketCliente, datos) {
99
+ const tipoPoliticaSeguridad = {
100
+ socketio: {
101
+ datos,
102
+ socketCliente
103
+ }
104
+ };
105
+ const objetoPoliticasDeSeguridad = {
106
+ funciones: this._funcionesSeguridad.findAll ? this._funcionesSeguridad.findAll : []
107
+ };
108
+ const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
109
+ return puedeRealizarAccion$
110
+ .pipe(mergeMap((puedeRealizarAccion) => {
111
+ if (puedeRealizarAccion) {
112
+ return from(buscarVariosRegistros(datos.criterioBusqueda, PrincipalFindManyOptions, this._skip, this._take, this._servicio));
113
+ }
114
+ else {
115
+ return of({ error: 403, mensaje: 'No tiene permisos' });
116
+ }
117
+ }), map((respuesta) => {
118
+ if (respuesta.error) {
119
+ return respuesta;
120
+ }
121
+ else {
122
+ return { data: respuesta };
123
+ }
124
+ }));
125
+ }
126
+ requestFindWhereOr(socketCliente, datos) {
127
+ const tipoPoliticaSeguridad = {
128
+ socketio: {
129
+ datos,
130
+ socketCliente
131
+ }
132
+ };
133
+ const objetoPoliticasDeSeguridad = {
134
+ funciones: this._funcionesSeguridad.findWhereOr ? this._funcionesSeguridad.findWhereOr : []
135
+ };
136
+ const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
137
+ return puedeRealizarAccion$
138
+ .pipe(mergeMap((puedeRealizarAccion) => {
139
+ if (puedeRealizarAccion) {
140
+ return from(buscarWhereOr(datos.criterioBusqueda, PrincipalFindManyOptions, this._skip, this._take, this._servicio));
141
+ }
142
+ else {
143
+ return of({ error: 403, mensaje: 'No tiene permisos' });
144
+ }
145
+ }), map((respuesta) => {
146
+ if (respuesta.error) {
147
+ return respuesta;
148
+ }
149
+ else {
150
+ return { data: respuesta };
151
+ }
152
+ }));
153
+ }
154
+ count(socketCliente, datos) {
155
+ const tipoPoliticaSeguridad = {
156
+ socketio: {
157
+ datos,
158
+ socketCliente
159
+ }
160
+ };
161
+ const objetoPoliticasDeSeguridad = {
162
+ funciones: this._funcionesSeguridad.count ? this._funcionesSeguridad.count : []
163
+ };
164
+ const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
165
+ return puedeRealizarAccion$
166
+ .pipe(mergeMap((puedeRealizarAccion) => {
167
+ if (puedeRealizarAccion) {
168
+ return from(contarRegistros(datos.criterioBusqueda, PrincipalFindManyOptions, this._skip, this._take, this._servicio));
169
+ }
170
+ else {
171
+ return of({ error: 403, mensaje: 'No tiene permisos' });
172
+ }
173
+ }), map((respuesta) => {
174
+ if (respuesta.error) {
175
+ return respuesta;
176
+ }
177
+ else {
178
+ return { data: respuesta };
179
+ }
180
+ }));
181
+ }
182
+ requestFindOne(socketCliente, datos) {
183
+ try {
184
+ if (!datos.id || typeof datos.id !== 'string' || Number(datos.id).toString() === "NaN") {
185
+ return of({ error: 400, mensaje: this._mensajes.encontrarUno });
186
+ }
187
+ }
188
+ catch (e) {
189
+ console.error(e);
190
+ return of({ error: 400, mensaje: this._mensajes.encontrarUno });
191
+ }
192
+ const tipoPoliticaSeguridad = {
193
+ socketio: {
194
+ datos,
195
+ socketCliente
196
+ }
197
+ };
198
+ const objetoPoliticasDeSeguridad = {
199
+ funciones: this._funcionesSeguridad.findOne ? this._funcionesSeguridad.findOne : []
200
+ };
201
+ const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
202
+ return puedeRealizarAccion$
203
+ .pipe(mergeMap((puedeRealizarAccion) => {
204
+ if (puedeRealizarAccion) {
205
+ return from(buscarRegistroPorId(PrincipalId, datos.id, this._servicio, this._mensajes.encontrarUno, true));
206
+ }
207
+ else {
208
+ return of({ error: 403, mensaje: 'No tiene permisos' });
209
+ }
210
+ }), map((respuesta) => {
211
+ if (respuesta.error) {
212
+ return respuesta;
213
+ }
214
+ else {
215
+ return { data: respuesta };
216
+ }
217
+ }));
218
+ }
219
+ requestCreateOne(socketCliente, datos) {
220
+ if (!datos.nuevoRegistro || typeof datos.nuevoRegistro !== 'object') {
221
+ return of({ error: 400, mensaje: this._mensajes.crearUno });
222
+ }
223
+ const tipoPoliticaSeguridad = {
224
+ socketio: {
225
+ datos,
226
+ socketCliente
227
+ }
228
+ };
229
+ const objetoPoliticasDeSeguridad = {
230
+ funciones: this._funcionesSeguridad.createOne ? this._funcionesSeguridad.createOne : []
231
+ };
232
+ const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
233
+ return puedeRealizarAccion$
234
+ .pipe(mergeMap((puedeRealizarAccion) => {
235
+ if (puedeRealizarAccion) {
236
+ return from(crearUnRegistro(datos.nuevoRegistro, this._servicio, this._dto.CreateDto, this._mensajes.crearUno, true));
237
+ }
238
+ else {
239
+ return of({ error: 403, mensaje: 'No tiene permisos' });
240
+ }
241
+ }), map((respuesta) => {
242
+ if (respuesta.error) {
243
+ return respuesta;
244
+ }
245
+ else {
246
+ const tieneConfiguracionDeBroadcast = this._configuracionBroadcast.createOne;
247
+ if (tieneConfiguracionDeBroadcast) {
248
+ const hacerBroadcast = this._configuracionBroadcast.createOne.broadcast;
249
+ const tieneFuncionRoom = this._configuracionBroadcast.createOne.funcionJoin;
250
+ if (hacerBroadcast && !tieneFuncionRoom) {
251
+ console.info('Ejecutando broadcast');
252
+ socketCliente
253
+ .broadcast
254
+ .emit('createdOne', { data: respuesta });
255
+ }
256
+ if (tieneFuncionRoom) {
257
+ console.info('Ejecutando funcion join');
258
+ tieneFuncionRoom(socketCliente, datos, this.contexto);
259
+ }
260
+ }
261
+ return { data: respuesta };
262
+ }
263
+ }));
264
+ }
265
+ requestDeleteOne(socketCliente, datos) {
266
+ try {
267
+ if (!datos.id || typeof datos.id !== 'string' || Number(datos.id).toString() === "NaN") {
268
+ return of({ error: 400, mensaje: this._mensajes.encontrarUno });
269
+ }
270
+ }
271
+ catch (e) {
272
+ console.error(e);
273
+ return of({ error: 400, mensaje: this._mensajes.encontrarUno });
274
+ }
275
+ const tipoPoliticaSeguridad = {
276
+ socketio: {
277
+ datos,
278
+ socketCliente
279
+ }
280
+ };
281
+ const objetoPoliticasDeSeguridad = {
282
+ funciones: this._funcionesSeguridad.deleteOne ? this._funcionesSeguridad.deleteOne : []
283
+ };
284
+ const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
285
+ return puedeRealizarAccion$
286
+ .pipe(mergeMap((puedeRealizarAccion) => {
287
+ if (puedeRealizarAccion) {
288
+ return from(eliminarUno(datos.id, PrincipalId, this._servicio, this._mensajes.eliminarUno, true));
289
+ }
290
+ else {
291
+ return of({ error: 403, mensaje: 'No tiene permisos' });
292
+ }
293
+ }), map((respuesta) => {
294
+ if (respuesta.error) {
295
+ return respuesta;
296
+ }
297
+ else {
298
+ const tieneConfiguracionDeBroadcast = this._configuracionBroadcast.deleteOne;
299
+ if (tieneConfiguracionDeBroadcast) {
300
+ const hacerBroadcast = this._configuracionBroadcast.deleteOne.broadcast;
301
+ const tieneFuncionRoom = this._configuracionBroadcast.deleteOne.funcionJoin;
302
+ if (hacerBroadcast && !tieneFuncionRoom) {
303
+ console.info('Ejecutando broadcast');
304
+ socketCliente
305
+ .broadcast
306
+ .emit('deletedOne', { data: respuesta });
307
+ }
308
+ if (tieneFuncionRoom) {
309
+ console.info('Ejecutando funcion join');
310
+ tieneFuncionRoom(socketCliente, datos, this.contexto);
311
+ }
312
+ }
313
+ return { data: respuesta };
314
+ }
315
+ }));
316
+ }
317
+ requestUpdateOne(socketCliente, datos) {
318
+ if (!datos.registroaActualizar || typeof datos.registroaActualizar !== 'object') {
319
+ return of({ error: 400, mensaje: this._mensajes.crearUno });
320
+ }
321
+ try {
322
+ if (!datos.id || typeof datos.id !== 'string' || Number(datos.id).toString() === "NaN") {
323
+ return of({ error: 400, mensaje: this._mensajes.encontrarUno });
324
+ }
325
+ }
326
+ catch (e) {
327
+ console.error(e);
328
+ return of({ error: 400, mensaje: this._mensajes.encontrarUno });
329
+ }
330
+ const tipoPoliticaSeguridad = {
331
+ socketio: {
332
+ datos,
333
+ socketCliente
334
+ }
335
+ };
336
+ const objetoPoliticasDeSeguridad = {
337
+ funciones: this._funcionesSeguridad.updateOne ? this._funcionesSeguridad.updateOne : []
338
+ };
339
+ const puedeRealizarAccion$ = aplicarPoliticasDeSeguridad(tipoPoliticaSeguridad, objetoPoliticasDeSeguridad, this.contexto);
340
+ return puedeRealizarAccion$
341
+ .pipe(mergeMap((puedeRealizarAccion) => {
342
+ if (puedeRealizarAccion) {
343
+ return from(editarUnRegistro(datos.id, datos.registroaActualizar, this._servicio, this._dto.UpdateDto, this._mensajes.actualizarUno, true));
344
+ }
345
+ else {
346
+ return of({ error: 403, mensaje: 'No tiene permisos' });
347
+ }
348
+ }), map((respuesta) => {
349
+ if (respuesta.error) {
350
+ return respuesta;
351
+ }
352
+ else {
353
+ const tieneConfiguracionDeBroadcast = this._configuracionBroadcast.updateOne;
354
+ if (tieneConfiguracionDeBroadcast) {
355
+ const hacerBroadcast = this._configuracionBroadcast.updateOne.broadcast;
356
+ const tieneFuncionRoom = this._configuracionBroadcast.updateOne.funcionJoin;
357
+ if (hacerBroadcast && !tieneFuncionRoom) {
358
+ console.info('Ejecutando broadcast');
359
+ socketCliente
360
+ .broadcast
361
+ .emit('updatedOne', { data: respuesta });
362
+ }
363
+ if (tieneFuncionRoom) {
364
+ console.info('Ejecutando funcion join');
365
+ tieneFuncionRoom(socketCliente, datos, this.contexto);
366
+ }
367
+ }
368
+ return { data: respuesta };
369
+ }
370
+ }));
371
+ }
372
+ }
373
+ __decorate([
374
+ SubscribeMessage('solicitarEstablecerSocketId')
375
+ ], PrincipalGateway.prototype, "solicitarEstablecerSocketId", null);
376
+ __decorate([
377
+ SubscribeMessage('requestFindAll')
378
+ ], PrincipalGateway.prototype, "requestFindAll", null);
379
+ __decorate([
380
+ SubscribeMessage('requestFindWhereOr')
381
+ ], PrincipalGateway.prototype, "requestFindWhereOr", null);
382
+ __decorate([
383
+ SubscribeMessage('requestCount')
384
+ ], PrincipalGateway.prototype, "count", null);
385
+ __decorate([
386
+ SubscribeMessage('requestFindOne')
387
+ ], PrincipalGateway.prototype, "requestFindOne", null);
388
+ __decorate([
389
+ SubscribeMessage('requestCreateOne')
390
+ ], PrincipalGateway.prototype, "requestCreateOne", null);
391
+ __decorate([
392
+ SubscribeMessage('requestDeleteOne')
393
+ ], PrincipalGateway.prototype, "requestDeleteOne", null);
394
+ __decorate([
395
+ SubscribeMessage('requestUpdateOne')
396
+ ], PrincipalGateway.prototype, "requestUpdateOne", null);
397
397
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbmNpcGFsLmdhdGV3YXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3ByaW5jaXBhbC5nYXRld2F5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSXRELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBR3pGLE9BQU8sRUFBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUdyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUd2QyxNQUFNO0lBS0YsWUFBNkIsR0FBVyxFQUNuQixVQUFrQixFQUNsQixRQUFnQixFQUNoQixVQUE0QixFQUM1Qix1QkFBc0QsRUFDdEQsbUJBQXVDLEVBQ3ZDLFNBQVMsRUFDVCxJQUFrQixFQUNsQixRQUFRLENB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