@solidxai/core 0.1.10-beta.22 → 0.1.10-beta.23

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 (434) hide show
  1. package/dist/commands/info.command.d.ts.map +1 -1
  2. package/dist/commands/info.command.js +0 -2
  3. package/dist/commands/info.command.js.map +1 -1
  4. package/dist/controllers/dashboard-user-layout.controller.d.ts +43 -0
  5. package/dist/controllers/dashboard-user-layout.controller.d.ts.map +1 -0
  6. package/dist/controllers/{dashboard-variable.controller.js → dashboard-user-layout.controller.js} +30 -30
  7. package/dist/controllers/dashboard-user-layout.controller.js.map +1 -0
  8. package/dist/controllers/dashboard.controller.d.ts +12 -42
  9. package/dist/controllers/dashboard.controller.d.ts.map +1 -1
  10. package/dist/controllers/dashboard.controller.js +71 -141
  11. package/dist/controllers/dashboard.controller.js.map +1 -1
  12. package/dist/decorators/dashboard-widget-data-provider.decorator.d.ts +3 -0
  13. package/dist/decorators/dashboard-widget-data-provider.decorator.d.ts.map +1 -0
  14. package/dist/decorators/dashboard-widget-data-provider.decorator.js +8 -0
  15. package/dist/decorators/dashboard-widget-data-provider.decorator.js.map +1 -0
  16. package/dist/dtos/create-dashboard-user-layout.dto.d.ts +10 -0
  17. package/dist/dtos/create-dashboard-user-layout.dto.d.ts.map +1 -0
  18. package/dist/dtos/create-dashboard-user-layout.dto.js +66 -0
  19. package/dist/dtos/create-dashboard-user-layout.dto.js.map +1 -0
  20. package/dist/dtos/dashboard-variable-options-query.dto.d.ts +7 -0
  21. package/dist/dtos/dashboard-variable-options-query.dto.d.ts.map +1 -0
  22. package/dist/dtos/dashboard-variable-options-query.dto.js +40 -0
  23. package/dist/dtos/dashboard-variable-options-query.dto.js.map +1 -0
  24. package/dist/dtos/dashboard-widget-data-request.dto.d.ts +12 -0
  25. package/dist/dtos/dashboard-widget-data-request.dto.d.ts.map +1 -0
  26. package/dist/dtos/dashboard-widget-data-request.dto.js +65 -0
  27. package/dist/dtos/dashboard-widget-data-request.dto.js.map +1 -0
  28. package/dist/dtos/update-dashboard-user-layout.dto.d.ts +11 -0
  29. package/dist/dtos/update-dashboard-user-layout.dto.d.ts.map +1 -0
  30. package/dist/dtos/{update-dashboard-layout.dto.js → update-dashboard-user-layout.dto.js} +34 -16
  31. package/dist/dtos/update-dashboard-user-layout.dto.js.map +1 -0
  32. package/dist/entities/dashboard-user-layout.entity.d.ts +11 -0
  33. package/dist/entities/dashboard-user-layout.entity.d.ts.map +1 -0
  34. package/dist/entities/dashboard-user-layout.entity.js +52 -0
  35. package/dist/entities/dashboard-user-layout.entity.js.map +1 -0
  36. package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
  37. package/dist/helpers/module-metadata-helper.service.js +15 -4
  38. package/dist/helpers/module-metadata-helper.service.js.map +1 -1
  39. package/dist/helpers/solid-registry.d.ts +5 -9
  40. package/dist/helpers/solid-registry.d.ts.map +1 -1
  41. package/dist/helpers/solid-registry.js +13 -28
  42. package/dist/helpers/solid-registry.js.map +1 -1
  43. package/dist/index.d.ts +21 -5
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +21 -5
  46. package/dist/index.js.map +1 -1
  47. package/dist/interfaces.d.ts +24 -13
  48. package/dist/interfaces.d.ts.map +1 -1
  49. package/dist/interfaces.js.map +1 -1
  50. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +1 -3
  51. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -1
  52. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +2 -25
  53. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
  54. package/dist/{repository/dashboard-layout.repository.d.ts → repositories/dashboard-user-layout.repository.d.ts} +5 -5
  55. package/dist/repositories/dashboard-user-layout.repository.d.ts.map +1 -0
  56. package/dist/{repository/dashboard-question-sql-dataset-config.repository.js → repositories/dashboard-user-layout.repository.js} +15 -10
  57. package/dist/repositories/dashboard-user-layout.repository.js.map +1 -0
  58. package/dist/seeders/module-metadata-seeder.service.d.ts +1 -6
  59. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  60. package/dist/seeders/module-metadata-seeder.service.js +1 -60
  61. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  62. package/dist/seeders/seed-data/solid-core-metadata.json +6203 -6690
  63. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.d.ts +13 -0
  64. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.d.ts.map +1 -0
  65. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.js +55 -0
  66. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.js.map +1 -0
  67. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.d.ts +13 -0
  68. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.d.ts.map +1 -0
  69. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.js +52 -0
  70. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.js.map +1 -0
  71. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.d.ts +13 -0
  72. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.d.ts.map +1 -0
  73. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.js +52 -0
  74. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.js.map +1 -0
  75. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.d.ts +10 -0
  76. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.d.ts.map +1 -0
  77. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.js +62 -0
  78. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.js.map +1 -0
  79. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.d.ts +10 -0
  80. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.d.ts.map +1 -0
  81. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.js +82 -0
  82. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.js.map +1 -0
  83. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.d.ts +17 -0
  84. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.d.ts.map +1 -0
  85. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.js +130 -0
  86. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.js.map +1 -0
  87. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.d.ts +37 -0
  88. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.d.ts.map +1 -0
  89. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.js +112 -0
  90. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.js.map +1 -0
  91. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.d.ts +10 -0
  92. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.d.ts.map +1 -0
  93. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.js +57 -0
  94. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.js.map +1 -0
  95. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.d.ts +10 -0
  96. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.d.ts.map +1 -0
  97. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.js +57 -0
  98. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.js.map +1 -0
  99. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.d.ts +10 -0
  100. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.d.ts.map +1 -0
  101. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.js +100 -0
  102. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.js.map +1 -0
  103. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.d.ts +10 -0
  104. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.d.ts.map +1 -0
  105. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.js +55 -0
  106. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.js.map +1 -0
  107. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.d.ts +13 -0
  108. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.d.ts.map +1 -0
  109. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.js +52 -0
  110. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.js.map +1 -0
  111. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.d.ts +15 -0
  112. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.d.ts.map +1 -0
  113. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.js +60 -0
  114. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.js.map +1 -0
  115. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.d.ts +13 -0
  116. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.d.ts.map +1 -0
  117. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.js +51 -0
  118. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.js.map +1 -0
  119. package/dist/services/dashboard-runtime.service.d.ts +31 -0
  120. package/dist/services/dashboard-runtime.service.d.ts.map +1 -0
  121. package/dist/services/dashboard-runtime.service.js +408 -0
  122. package/dist/services/dashboard-runtime.service.js.map +1 -0
  123. package/dist/services/dashboard-user-layout.service.d.ts +12 -0
  124. package/dist/services/dashboard-user-layout.service.d.ts.map +1 -0
  125. package/dist/services/{dashboard-variable.service.js → dashboard-user-layout.service.js} +11 -12
  126. package/dist/services/dashboard-user-layout.service.js.map +1 -0
  127. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.d.ts +11 -0
  128. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.d.ts.map +1 -0
  129. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.js +59 -0
  130. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.js.map +1 -0
  131. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.d.ts +11 -0
  132. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.d.ts.map +1 -0
  133. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js +60 -0
  134. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js.map +1 -0
  135. package/dist/services/solid-introspect.service.d.ts +1 -2
  136. package/dist/services/solid-introspect.service.d.ts.map +1 -1
  137. package/dist/services/solid-introspect.service.js +12 -24
  138. package/dist/services/solid-introspect.service.js.map +1 -1
  139. package/dist/solid-core.module.d.ts.map +1 -1
  140. package/dist/solid-core.module.js +43 -66
  141. package/dist/solid-core.module.js.map +1 -1
  142. package/package.json +1 -1
  143. package/src/commands/info.command.ts +0 -2
  144. package/src/controllers/{dashboard-variable.controller.ts → dashboard-user-layout.controller.ts} +10 -10
  145. package/src/controllers/dashboard.controller.ts +70 -89
  146. package/src/decorators/dashboard-widget-data-provider.decorator.ts +6 -0
  147. package/src/dtos/create-dashboard-user-layout.dto.ts +41 -0
  148. package/src/dtos/dashboard-variable-options-query.dto.ts +20 -0
  149. package/src/dtos/dashboard-widget-data-request.dto.ts +34 -0
  150. package/src/dtos/update-dashboard-user-layout.dto.ts +45 -0
  151. package/src/entities/dashboard-user-layout.entity.ts +27 -0
  152. package/src/helpers/module-metadata-helper.service.ts +21 -6
  153. package/src/helpers/solid-registry.ts +15 -36
  154. package/src/index.ts +21 -5
  155. package/src/interfaces.ts +32 -19
  156. package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +1 -34
  157. package/src/repositories/dashboard-user-layout.repository.ts +19 -0
  158. package/src/seeders/module-metadata-seeder.service.ts +0 -67
  159. package/src/seeders/seed-data/solid-core-metadata.json +6204 -6691
  160. package/src/services/dashboard-providers/README.md +603 -0
  161. package/src/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.ts +49 -0
  162. package/src/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.ts +45 -0
  163. package/src/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.ts +45 -0
  164. package/src/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.ts +58 -0
  165. package/src/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.ts +79 -0
  166. package/src/services/dashboard-providers/mq-dashboard-provider-utils.ts +165 -0
  167. package/src/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.ts +155 -0
  168. package/src/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.ts +51 -0
  169. package/src/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.ts +51 -0
  170. package/src/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.ts +95 -0
  171. package/src/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.ts +49 -0
  172. package/src/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.ts +45 -0
  173. package/src/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.ts +55 -0
  174. package/src/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.ts +44 -0
  175. package/src/services/dashboard-runtime.service.ts +488 -0
  176. package/src/services/dashboard-user-layout.service.ts +20 -0
  177. package/src/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.ts +52 -0
  178. package/src/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.ts +51 -0
  179. package/src/services/solid-introspect.service.ts +19 -34
  180. package/src/solid-core.module.ts +43 -72
  181. package/dist/controllers/dashboard-layout.controller.d.ts +0 -47
  182. package/dist/controllers/dashboard-layout.controller.d.ts.map +0 -1
  183. package/dist/controllers/dashboard-layout.controller.js +0 -204
  184. package/dist/controllers/dashboard-layout.controller.js.map +0 -1
  185. package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts +0 -43
  186. package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts.map +0 -1
  187. package/dist/controllers/dashboard-question-sql-dataset-config.controller.js +0 -179
  188. package/dist/controllers/dashboard-question-sql-dataset-config.controller.js.map +0 -1
  189. package/dist/controllers/dashboard-question.controller.d.ts +0 -45
  190. package/dist/controllers/dashboard-question.controller.d.ts.map +0 -1
  191. package/dist/controllers/dashboard-question.controller.js +0 -194
  192. package/dist/controllers/dashboard-question.controller.js.map +0 -1
  193. package/dist/controllers/dashboard-variable.controller.d.ts +0 -43
  194. package/dist/controllers/dashboard-variable.controller.d.ts.map +0 -1
  195. package/dist/controllers/dashboard-variable.controller.js.map +0 -1
  196. package/dist/decorators/dashboard-question-data-provider.decorator.d.ts +0 -3
  197. package/dist/decorators/dashboard-question-data-provider.decorator.d.ts.map +0 -1
  198. package/dist/decorators/dashboard-question-data-provider.decorator.js +0 -11
  199. package/dist/decorators/dashboard-question-data-provider.decorator.js.map +0 -1
  200. package/dist/decorators/dashboard-selection-provider.decorator.d.ts +0 -3
  201. package/dist/decorators/dashboard-selection-provider.decorator.d.ts.map +0 -1
  202. package/dist/decorators/dashboard-selection-provider.decorator.js +0 -11
  203. package/dist/decorators/dashboard-selection-provider.decorator.js.map +0 -1
  204. package/dist/dtos/create-dashboard-layout.dto.d.ts +0 -8
  205. package/dist/dtos/create-dashboard-layout.dto.d.ts.map +0 -1
  206. package/dist/dtos/create-dashboard-layout.dto.js +0 -53
  207. package/dist/dtos/create-dashboard-layout.dto.js.map +0 -1
  208. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts +0 -12
  209. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts.map +0 -1
  210. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js +0 -77
  211. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js.map +0 -1
  212. package/dist/dtos/create-dashboard-question.dto.d.ts +0 -17
  213. package/dist/dtos/create-dashboard-question.dto.d.ts.map +0 -1
  214. package/dist/dtos/create-dashboard-question.dto.js +0 -105
  215. package/dist/dtos/create-dashboard-question.dto.js.map +0 -1
  216. package/dist/dtos/create-dashboard-variable.dto.d.ts +0 -19
  217. package/dist/dtos/create-dashboard-variable.dto.d.ts.map +0 -1
  218. package/dist/dtos/create-dashboard-variable.dto.js +0 -103
  219. package/dist/dtos/create-dashboard-variable.dto.js.map +0 -1
  220. package/dist/dtos/create-dashboard.dto.d.ts +0 -17
  221. package/dist/dtos/create-dashboard.dto.d.ts.map +0 -1
  222. package/dist/dtos/create-dashboard.dto.js +0 -102
  223. package/dist/dtos/create-dashboard.dto.js.map +0 -1
  224. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts +0 -8
  225. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts.map +0 -1
  226. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.js +0 -52
  227. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.js.map +0 -1
  228. package/dist/dtos/update-dashboard-layout.dto.d.ts +0 -8
  229. package/dist/dtos/update-dashboard-layout.dto.d.ts.map +0 -1
  230. package/dist/dtos/update-dashboard-layout.dto.js.map +0 -1
  231. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts +0 -13
  232. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts.map +0 -1
  233. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js +0 -86
  234. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js.map +0 -1
  235. package/dist/dtos/update-dashboard-question.dto.d.ts +0 -18
  236. package/dist/dtos/update-dashboard-question.dto.d.ts.map +0 -1
  237. package/dist/dtos/update-dashboard-question.dto.js +0 -112
  238. package/dist/dtos/update-dashboard-question.dto.js.map +0 -1
  239. package/dist/dtos/update-dashboard-variable.dto.d.ts +0 -16
  240. package/dist/dtos/update-dashboard-variable.dto.d.ts.map +0 -1
  241. package/dist/dtos/update-dashboard-variable.dto.js +0 -101
  242. package/dist/dtos/update-dashboard-variable.dto.js.map +0 -1
  243. package/dist/dtos/update-dashboard.dto.d.ts +0 -18
  244. package/dist/dtos/update-dashboard.dto.d.ts.map +0 -1
  245. package/dist/dtos/update-dashboard.dto.js +0 -108
  246. package/dist/dtos/update-dashboard.dto.js.map +0 -1
  247. package/dist/entities/dashboard-layout.entity.d.ts +0 -9
  248. package/dist/entities/dashboard-layout.entity.d.ts.map +0 -1
  249. package/dist/entities/dashboard-layout.entity.js +0 -41
  250. package/dist/entities/dashboard-layout.entity.js.map +0 -1
  251. package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts +0 -14
  252. package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts.map +0 -1
  253. package/dist/entities/dashboard-question-sql-dataset-config.entity.js +0 -66
  254. package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +0 -1
  255. package/dist/entities/dashboard-question.entity.d.ts +0 -17
  256. package/dist/entities/dashboard-question.entity.d.ts.map +0 -1
  257. package/dist/entities/dashboard-question.entity.js +0 -77
  258. package/dist/entities/dashboard-question.entity.js.map +0 -1
  259. package/dist/entities/dashboard-variable.entity.d.ts +0 -16
  260. package/dist/entities/dashboard-variable.entity.d.ts.map +0 -1
  261. package/dist/entities/dashboard-variable.entity.js +0 -79
  262. package/dist/entities/dashboard-variable.entity.js.map +0 -1
  263. package/dist/entities/dashboard.entity.d.ts +0 -16
  264. package/dist/entities/dashboard.entity.d.ts.map +0 -1
  265. package/dist/entities/dashboard.entity.js +0 -64
  266. package/dist/entities/dashboard.entity.js.map +0 -1
  267. package/dist/mappers/dashboard-mapper.d.ts +0 -6
  268. package/dist/mappers/dashboard-mapper.d.ts.map +0 -1
  269. package/dist/mappers/dashboard-mapper.js +0 -62
  270. package/dist/mappers/dashboard-mapper.js.map +0 -1
  271. package/dist/repository/dashboard-layout.repository.d.ts.map +0 -1
  272. package/dist/repository/dashboard-layout.repository.js +0 -34
  273. package/dist/repository/dashboard-layout.repository.js.map +0 -1
  274. package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts +0 -12
  275. package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts.map +0 -1
  276. package/dist/repository/dashboard-question-sql-dataset-config.repository.js.map +0 -1
  277. package/dist/repository/dashboard-question.repository.d.ts +0 -12
  278. package/dist/repository/dashboard-question.repository.d.ts.map +0 -1
  279. package/dist/repository/dashboard-question.repository.js +0 -34
  280. package/dist/repository/dashboard-question.repository.js.map +0 -1
  281. package/dist/repository/dashboard-variable.repository.d.ts +0 -12
  282. package/dist/repository/dashboard-variable.repository.d.ts.map +0 -1
  283. package/dist/repository/dashboard-variable.repository.js +0 -34
  284. package/dist/repository/dashboard-variable.repository.js.map +0 -1
  285. package/dist/repository/dashboard.repository.d.ts +0 -13
  286. package/dist/repository/dashboard.repository.d.ts.map +0 -1
  287. package/dist/repository/dashboard.repository.js +0 -104
  288. package/dist/repository/dashboard.repository.js.map +0 -1
  289. package/dist/services/dashboard-layout.service.d.ts +0 -20
  290. package/dist/services/dashboard-layout.service.d.ts.map +0 -1
  291. package/dist/services/dashboard-layout.service.js +0 -120
  292. package/dist/services/dashboard-layout.service.js.map +0 -1
  293. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts +0 -12
  294. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +0 -1
  295. package/dist/services/dashboard-question-sql-dataset-config.service.js +0 -38
  296. package/dist/services/dashboard-question-sql-dataset-config.service.js.map +0 -1
  297. package/dist/services/dashboard-question.service.d.ts +0 -23
  298. package/dist/services/dashboard-question.service.d.ts.map +0 -1
  299. package/dist/services/dashboard-question.service.js +0 -135
  300. package/dist/services/dashboard-question.service.js.map +0 -1
  301. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.d.ts +0 -12
  302. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.d.ts.map +0 -1
  303. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.js +0 -55
  304. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.js.map +0 -1
  305. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.d.ts +0 -11
  306. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.d.ts.map +0 -1
  307. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.js +0 -45
  308. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.js.map +0 -1
  309. package/dist/services/dashboard-variable.service.d.ts +0 -13
  310. package/dist/services/dashboard-variable.service.d.ts.map +0 -1
  311. package/dist/services/dashboard-variable.service.js.map +0 -1
  312. package/dist/services/dashboard.service.d.ts +0 -29
  313. package/dist/services/dashboard.service.d.ts.map +0 -1
  314. package/dist/services/dashboard.service.js +0 -171
  315. package/dist/services/dashboard.service.js.map +0 -1
  316. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.d.ts +0 -12
  317. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.d.ts.map +0 -1
  318. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.js +0 -41
  319. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.js.map +0 -1
  320. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.d.ts +0 -12
  321. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.d.ts.map +0 -1
  322. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.js +0 -42
  323. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.js.map +0 -1
  324. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts +0 -25
  325. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts.map +0 -1
  326. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js +0 -116
  327. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js.map +0 -1
  328. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts +0 -12
  329. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts.map +0 -1
  330. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js +0 -37
  331. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js.map +0 -1
  332. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts +0 -12
  333. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts.map +0 -1
  334. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js +0 -38
  335. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js.map +0 -1
  336. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts +0 -12
  337. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts.map +0 -1
  338. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js +0 -38
  339. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js.map +0 -1
  340. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts +0 -34
  341. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts.map +0 -1
  342. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js +0 -90
  343. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js.map +0 -1
  344. package/dist/services/question-data-providers/helpers.d.ts +0 -7
  345. package/dist/services/question-data-providers/helpers.d.ts.map +0 -1
  346. package/dist/services/question-data-providers/helpers.js +0 -25
  347. package/dist/services/question-data-providers/helpers.js.map +0 -1
  348. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts +0 -14
  349. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts.map +0 -1
  350. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js +0 -71
  351. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js.map +0 -1
  352. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts +0 -16
  353. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts.map +0 -1
  354. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js +0 -93
  355. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js.map +0 -1
  356. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts +0 -11
  357. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts.map +0 -1
  358. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js +0 -49
  359. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js.map +0 -1
  360. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts +0 -11
  361. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts.map +0 -1
  362. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.js +0 -47
  363. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.js.map +0 -1
  364. package/dist/services/sql-expression-resolver.service.d.ts +0 -12
  365. package/dist/services/sql-expression-resolver.service.d.ts.map +0 -1
  366. package/dist/services/sql-expression-resolver.service.js +0 -121
  367. package/dist/services/sql-expression-resolver.service.js.map +0 -1
  368. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts +0 -16
  369. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts.map +0 -1
  370. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js +0 -72
  371. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js.map +0 -1
  372. package/dist/subscribers/dashboard-question.subscriber.d.ts +0 -16
  373. package/dist/subscribers/dashboard-question.subscriber.d.ts.map +0 -1
  374. package/dist/subscribers/dashboard-question.subscriber.js +0 -72
  375. package/dist/subscribers/dashboard-question.subscriber.js.map +0 -1
  376. package/dist/subscribers/dashboard-variable.subscriber.d.ts +0 -16
  377. package/dist/subscribers/dashboard-variable.subscriber.d.ts.map +0 -1
  378. package/dist/subscribers/dashboard-variable.subscriber.js +0 -72
  379. package/dist/subscribers/dashboard-variable.subscriber.js.map +0 -1
  380. package/dist/subscribers/dashboard.subscriber.d.ts +0 -16
  381. package/dist/subscribers/dashboard.subscriber.d.ts.map +0 -1
  382. package/dist/subscribers/dashboard.subscriber.js +0 -71
  383. package/dist/subscribers/dashboard.subscriber.js.map +0 -1
  384. package/src/controllers/dashboard-layout.controller.ts +0 -106
  385. package/src/controllers/dashboard-question-sql-dataset-config.controller.ts +0 -93
  386. package/src/controllers/dashboard-question.controller.ts +0 -104
  387. package/src/decorators/dashboard-question-data-provider.decorator.ts +0 -7
  388. package/src/decorators/dashboard-selection-provider.decorator.ts +0 -7
  389. package/src/dtos/create-dashboard-layout.dto.ts +0 -31
  390. package/src/dtos/create-dashboard-question-sql-dataset-config.dto.ts +0 -42
  391. package/src/dtos/create-dashboard-question.dto.ts +0 -62
  392. package/src/dtos/create-dashboard-variable.dto.ts +0 -60
  393. package/src/dtos/create-dashboard.dto.ts +0 -61
  394. package/src/dtos/dashboard-variable-selection-dynamic-query.dto.ts +0 -29
  395. package/src/dtos/update-dashboard-layout.dto.ts +0 -30
  396. package/src/dtos/update-dashboard-question-sql-dataset-config.dto.ts +0 -49
  397. package/src/dtos/update-dashboard-question.dto.ts +0 -67
  398. package/src/dtos/update-dashboard-variable.dto.ts +0 -58
  399. package/src/dtos/update-dashboard.dto.ts +0 -65
  400. package/src/entities/dashboard-layout.entity.ts +0 -18
  401. package/src/entities/dashboard-question-sql-dataset-config.entity.ts +0 -37
  402. package/src/entities/dashboard-question.entity.ts +0 -46
  403. package/src/entities/dashboard-variable.entity.ts +0 -44
  404. package/src/entities/dashboard.entity.ts +0 -36
  405. package/src/mappers/dashboard-mapper.ts +0 -53
  406. package/src/repository/dashboard-layout.repository.ts +0 -17
  407. package/src/repository/dashboard-question-sql-dataset-config.repository.ts +0 -17
  408. package/src/repository/dashboard-question.repository.ts +0 -17
  409. package/src/repository/dashboard-variable.repository.ts +0 -17
  410. package/src/repository/dashboard.repository.ts +0 -101
  411. package/src/services/dashboard-layout.service.ts +0 -111
  412. package/src/services/dashboard-question-sql-dataset-config.service.ts +0 -25
  413. package/src/services/dashboard-question.service.ts +0 -150
  414. package/src/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.ts +0 -56
  415. package/src/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.ts +0 -37
  416. package/src/services/dashboard-variable.service.ts +0 -27
  417. package/src/services/dashboard.service.ts +0 -148
  418. package/src/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.ts +0 -43
  419. package/src/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.ts +0 -44
  420. package/src/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.ts +0 -114
  421. package/src/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.ts +0 -38
  422. package/src/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.ts +0 -40
  423. package/src/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.ts +0 -39
  424. package/src/services/question-data-providers/chartjs-sql-data-provider.service.ts +0 -121
  425. package/src/services/question-data-providers/helpers.ts +0 -30
  426. package/src/services/question-data-providers/prime-react-datatable-sql-data-provider.service.ts +0 -74
  427. package/src/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.ts +0 -115
  428. package/src/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.ts +0 -44
  429. package/src/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.ts +0 -41
  430. package/src/services/sql-expression-resolver.service.ts +0 -140
  431. package/src/subscribers/dashboard-question-sql-dataset-config.subscriber.ts +0 -61
  432. package/src/subscribers/dashboard-question.subscriber.ts +0 -62
  433. package/src/subscribers/dashboard-variable.subscriber.ts +0 -63
  434. package/src/subscribers/dashboard.subscriber.ts +0 -62
@@ -1,121 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- 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;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.SqlExpressionResolverService = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const chartjs_sql_data_provider_service_1 = require("./question-data-providers/chartjs-sql-data-provider.service");
15
- const request_context_service_1 = require("./request-context.service");
16
- const error_messages_1 = require("../constants/error-messages");
17
- let SqlExpressionResolverService = class SqlExpressionResolverService {
18
- constructor(requestContextService) {
19
- this.requestContextService = requestContextService;
20
- }
21
- resolveSqlWithExpressions(sql, expressions) {
22
- const variableToColumnMap = {};
23
- const variablePattern = /{{\s*(\w+)\s*\[\s*([\w.]+)\s*\]\s*}}/g;
24
- let paramIndex = 1;
25
- const parameters = [];
26
- if (sql.includes('{{$activeUserId}}')) {
27
- const activeUser = this.requestContextService.getActiveUser();
28
- if (activeUser && activeUser.sub) {
29
- sql = sql.replace(/\{\{\$activeUserId\}\}/g, `$${paramIndex++}`);
30
- parameters.push(activeUser.sub);
31
- }
32
- }
33
- let simplifiedSql = sql.replace(variablePattern, (_, variableName, columnName) => {
34
- variableToColumnMap[variableName] = columnName;
35
- return `{{${variableName}}}`;
36
- });
37
- for (const expr of expressions) {
38
- const column = variableToColumnMap[expr.variableName];
39
- if (!column)
40
- continue;
41
- let sqlFragment = '';
42
- const placeholder = `{{${expr.variableName}}}`;
43
- switch (expr.operator) {
44
- case chartjs_sql_data_provider_service_1.SqlExpressionOperator.EQUALS:
45
- sqlFragment = `${column} = $${paramIndex++}`;
46
- parameters.push(expr.value[0]);
47
- break;
48
- case chartjs_sql_data_provider_service_1.SqlExpressionOperator.NOT_EQUALS:
49
- sqlFragment = `${column} != $${paramIndex++}`;
50
- parameters.push(expr.value[0]);
51
- break;
52
- case chartjs_sql_data_provider_service_1.SqlExpressionOperator.CONTAINS:
53
- sqlFragment = `${column} LIKE $${paramIndex++}`;
54
- parameters.push(`%${expr.value[0]}%`);
55
- break;
56
- case chartjs_sql_data_provider_service_1.SqlExpressionOperator.NOT_CONTAINS:
57
- sqlFragment = `${column} NOT LIKE $${paramIndex++}`;
58
- parameters.push(`%${expr.value[0]}%`);
59
- break;
60
- case chartjs_sql_data_provider_service_1.SqlExpressionOperator.STARTS_WITH:
61
- sqlFragment = `${column} LIKE $${paramIndex++}`;
62
- parameters.push(`${expr.value[0]}%`);
63
- break;
64
- case chartjs_sql_data_provider_service_1.SqlExpressionOperator.ENDS_WITH:
65
- sqlFragment = `${column} LIKE $${paramIndex++}`;
66
- parameters.push(`%${expr.value[0]}`);
67
- break;
68
- case chartjs_sql_data_provider_service_1.SqlExpressionOperator.IN:
69
- const inParams = expr.value.map(val => {
70
- parameters.push(val);
71
- return `$${paramIndex++}`;
72
- });
73
- sqlFragment = `${column} IN (${inParams.join(", ")})`;
74
- break;
75
- case chartjs_sql_data_provider_service_1.SqlExpressionOperator.NOT_IN:
76
- const notInParams = expr.value.map(val => {
77
- parameters.push(val);
78
- return `$${paramIndex++}`;
79
- });
80
- sqlFragment = `${column} NOT IN (${notInParams.join(", ")})`;
81
- break;
82
- case chartjs_sql_data_provider_service_1.SqlExpressionOperator.BETWEEN:
83
- sqlFragment = `${column} BETWEEN $${paramIndex} AND $${paramIndex + 1}`;
84
- parameters.push(expr.value[0], expr.value[1]);
85
- paramIndex += 2;
86
- break;
87
- case chartjs_sql_data_provider_service_1.SqlExpressionOperator.LT:
88
- sqlFragment = `${column} < $${paramIndex++}`;
89
- parameters.push(expr.value[0]);
90
- break;
91
- case chartjs_sql_data_provider_service_1.SqlExpressionOperator.LTE:
92
- sqlFragment = `${column} <= $${paramIndex++}`;
93
- parameters.push(expr.value[0]);
94
- break;
95
- case chartjs_sql_data_provider_service_1.SqlExpressionOperator.GT:
96
- sqlFragment = `${column} > $${paramIndex++}`;
97
- parameters.push(expr.value[0]);
98
- break;
99
- case chartjs_sql_data_provider_service_1.SqlExpressionOperator.GTE:
100
- sqlFragment = `${column} >= $${paramIndex++}`;
101
- parameters.push(expr.value[0]);
102
- break;
103
- default:
104
- throw new Error(error_messages_1.ERROR_MESSAGES.UNSUPPORTED_SQL_OPERATOR(expr.operator));
105
- }
106
- simplifiedSql = simplifiedSql.replace(placeholder, sqlFragment);
107
- }
108
- simplifiedSql = simplifiedSql.replace(/{{\s*\w+\s*}}/g, '');
109
- simplifiedSql = simplifiedSql.replace(/\bwhere\b\s*$/i, '').trim();
110
- return {
111
- rawSql: simplifiedSql,
112
- parameters
113
- };
114
- }
115
- };
116
- exports.SqlExpressionResolverService = SqlExpressionResolverService;
117
- exports.SqlExpressionResolverService = SqlExpressionResolverService = __decorate([
118
- (0, common_1.Injectable)(),
119
- __metadata("design:paramtypes", [request_context_service_1.RequestContextService])
120
- ], SqlExpressionResolverService);
121
- //# sourceMappingURL=sql-expression-resolver.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sql-expression-resolver.service.js","sourceRoot":"","sources":["../../src/services/sql-expression-resolver.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { SqlExpression, SqlExpressionOperator } from \"./question-data-providers/chartjs-sql-data-provider.service\";\nimport { RequestContextService } from \"./request-context.service\";\nimport { ERROR_MESSAGES } from \"src/constants/error-messages\";\n\nexport interface SqlReplacementResult {\n rawSql: string;\n parameters: any[]; // Positional parameters\n}\n\n@Injectable()\nexport class SqlExpressionResolverService {\n constructor(private readonly requestContextService: RequestContextService) { }\n resolveSqlWithExpressions(sql: string, expressions: SqlExpression[]): SqlReplacementResult {\n const variableToColumnMap: Record<string, string> = {};\n const variablePattern = /{{\\s*(\\w+)\\s*\\[\\s*([\\w.]+)\\s*\\]\\s*}}/g;\n\n let paramIndex = 1;\n const parameters: any[] = [];\n\n // Handle sql expression tokens like {{$activeUserId}} in the SQL string\n if (sql.includes('{{$activeUserId}}')) {\n const activeUser = this.requestContextService.getActiveUser();\n if (activeUser && activeUser.sub) {\n // Replace custom placeholder with parameter placeholder ($1)\n sql = sql.replace(/\\{\\{\\$activeUserId\\}\\}/g, `$${paramIndex++}`);\n // Add the active user ID to parameters\n parameters.push(activeUser.sub);\n }\n }\n\n // --- Pass 1: extract variable -> column mappings ---\n let simplifiedSql = sql.replace(variablePattern, (_, variableName, columnName) => {\n variableToColumnMap[variableName] = columnName;\n return `{{${variableName}}}`;\n });\n\n // --- Pass 2: Replace each variable with positional fragment ---\n\n for (const expr of expressions) {\n const column = variableToColumnMap[expr.variableName];\n if (!column) continue;\n\n let sqlFragment = '';\n const placeholder = `{{${expr.variableName}}}`;\n\n switch (expr.operator) {\n case SqlExpressionOperator.EQUALS:\n sqlFragment = `${column} = $${paramIndex++}`;\n parameters.push(expr.value[0]);\n break;\n\n case SqlExpressionOperator.NOT_EQUALS:\n sqlFragment = `${column} != $${paramIndex++}`;\n parameters.push(expr.value[0]);\n break;\n\n case SqlExpressionOperator.CONTAINS:\n sqlFragment = `${column} LIKE $${paramIndex++}`;\n parameters.push(`%${expr.value[0]}%`);\n break;\n\n case SqlExpressionOperator.NOT_CONTAINS:\n sqlFragment = `${column} NOT LIKE $${paramIndex++}`;\n parameters.push(`%${expr.value[0]}%`);\n break;\n\n case SqlExpressionOperator.STARTS_WITH:\n sqlFragment = `${column} LIKE $${paramIndex++}`;\n parameters.push(`${expr.value[0]}%`);\n break;\n\n case SqlExpressionOperator.ENDS_WITH:\n sqlFragment = `${column} LIKE $${paramIndex++}`;\n parameters.push(`%${expr.value[0]}`);\n break;\n\n case SqlExpressionOperator.IN:\n const inParams = expr.value.map(val => {\n parameters.push(val);\n return `$${paramIndex++}`;\n });\n sqlFragment = `${column} IN (${inParams.join(\", \")})`;\n break;\n\n case SqlExpressionOperator.NOT_IN:\n const notInParams = expr.value.map(val => {\n parameters.push(val);\n return `$${paramIndex++}`;\n });\n sqlFragment = `${column} NOT IN (${notInParams.join(\", \")})`;\n break;\n\n case SqlExpressionOperator.BETWEEN:\n sqlFragment = `${column} BETWEEN $${paramIndex} AND $${paramIndex + 1}`;\n parameters.push(expr.value[0], expr.value[1]);\n paramIndex += 2;\n break;\n\n case SqlExpressionOperator.LT:\n sqlFragment = `${column} < $${paramIndex++}`;\n parameters.push(expr.value[0]);\n break;\n\n case SqlExpressionOperator.LTE:\n sqlFragment = `${column} <= $${paramIndex++}`;\n parameters.push(expr.value[0]);\n break;\n\n case SqlExpressionOperator.GT:\n sqlFragment = `${column} > $${paramIndex++}`;\n parameters.push(expr.value[0]);\n break;\n\n case SqlExpressionOperator.GTE:\n sqlFragment = `${column} >= $${paramIndex++}`;\n parameters.push(expr.value[0]);\n break;\n\n default:\n throw new Error(ERROR_MESSAGES.UNSUPPORTED_SQL_OPERATOR(expr.operator));\n }\n simplifiedSql = simplifiedSql.replace(placeholder, sqlFragment);\n }\n\n // --- Final cleanup: remove any remaining placeholders ---\n simplifiedSql = simplifiedSql.replace(/{{\\s*\\w+\\s*}}/g, '');\n\n // Remove dangling where clause if no expressions were applied\n simplifiedSql = simplifiedSql.replace(/\\bwhere\\b\\s*$/i, '').trim();\n\n // Need to handle scenarios of complex expression i.e with and / or clauses. probably need to have this logic in the sql expression object itself\n\n\n return {\n rawSql: simplifiedSql,\n parameters\n };\n }\n}"]}
@@ -1,16 +0,0 @@
1
- import { DashboardQuestionSqlDatasetConfig } from "../entities/dashboard-question-sql-dataset-config.entity";
2
- import { ModuleMetadataHelperService } from "../helpers/module-metadata-helper.service";
3
- import { DashboardService } from "../services/dashboard.service";
4
- import { DataSource, EntitySubscriberInterface, InsertEvent, UpdateEvent } from "typeorm";
5
- export declare class DashboardQuestionSqlDatasetConfigSubscriber implements EntitySubscriberInterface<DashboardQuestionSqlDatasetConfig> {
6
- private readonly dataSource;
7
- readonly moduleMetadataHelperService: ModuleMetadataHelperService;
8
- readonly dashboardService: DashboardService;
9
- private readonly logger;
10
- constructor(dataSource: DataSource, moduleMetadataHelperService: ModuleMetadataHelperService, dashboardService: DashboardService);
11
- listenTo(): typeof DashboardQuestionSqlDatasetConfig;
12
- afterInsert(event: InsertEvent<DashboardQuestionSqlDatasetConfig>): Promise<void>;
13
- afterUpdate(event: UpdateEvent<DashboardQuestionSqlDatasetConfig>): Promise<void>;
14
- private saveQuestionToConfig;
15
- }
16
- //# sourceMappingURL=dashboard-question-sql-dataset-config.subscriber.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard-question-sql-dataset-config.subscriber.d.ts","sourceRoot":"","sources":["../../src/subscribers/dashboard-question-sql-dataset-config.subscriber.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iCAAiC,EAAE,MAAM,2DAA2D,CAAC;AAE9G,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAiB,yBAAyB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEzG,qBACa,2CAA4C,YAAW,yBAAyB,CAAC,iCAAiC,CAAC;IAIxH,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,QAAQ,CAAC,2BAA2B,EAAE,2BAA2B;IACjE,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IAL/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;gBAGvC,UAAU,EAAE,UAAU,EAC9B,2BAA2B,EAAE,2BAA2B,EACxD,gBAAgB,EAAE,gBAAgB;IAK/C,QAAQ;IAIF,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,iCAAiC,CAAC;IASjE,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,iCAAiC,CAAC;YASzD,oBAAoB;CAkBrC"}
@@ -1,72 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- 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;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.DashboardQuestionSqlDatasetConfigSubscriber = void 0;
16
- const common_1 = require("@nestjs/common");
17
- const typeorm_1 = require("@nestjs/typeorm");
18
- const dashboard_question_sql_dataset_config_entity_1 = require("../entities/dashboard-question-sql-dataset-config.entity");
19
- const dashboard_question_entity_1 = require("../entities/dashboard-question.entity");
20
- const module_metadata_helper_service_1 = require("../helpers/module-metadata-helper.service");
21
- const dashboard_service_1 = require("../services/dashboard.service");
22
- const typeorm_2 = require("typeorm");
23
- let DashboardQuestionSqlDatasetConfigSubscriber = class DashboardQuestionSqlDatasetConfigSubscriber {
24
- constructor(dataSource, moduleMetadataHelperService, dashboardService) {
25
- this.dataSource = dataSource;
26
- this.moduleMetadataHelperService = moduleMetadataHelperService;
27
- this.dashboardService = dashboardService;
28
- this.logger = new common_1.Logger(this.constructor.name);
29
- this.dataSource.subscribers.push(this);
30
- }
31
- listenTo() {
32
- return dashboard_question_sql_dataset_config_entity_1.DashboardQuestionSqlDatasetConfig;
33
- }
34
- async afterInsert(event) {
35
- const question = event.entity.question;
36
- if (!question) {
37
- this.logger.debug('No question found in the QuestionSqlDatasetConfigSubscriber afterInsert method');
38
- return;
39
- }
40
- await this.saveQuestionToConfig(question, event.queryRunner.manager);
41
- }
42
- async afterUpdate(event) {
43
- const question = event.databaseEntity.question;
44
- if (!question) {
45
- this.logger.debug('No question found in the QuestionSqlDatasetConfigSubscriber afterUpdate method');
46
- return;
47
- }
48
- await this.saveQuestionToConfig(question, event.queryRunner.manager);
49
- }
50
- async saveQuestionToConfig(question, entityManager) {
51
- const populatedQuestion = await entityManager.findOne(dashboard_question_entity_1.DashboardQuestion, {
52
- where: {
53
- id: question.id,
54
- },
55
- relations: ['dashboard', 'dashboard.module', 'dashboard.dashboardVariables', 'dashboard.questions', 'dashboard.questions.questionSqlDatasetConfigs'],
56
- });
57
- const dashboard = populatedQuestion?.dashboard;
58
- if (!dashboard) {
59
- throw new Error(`Dashboard not found for question id ${question.id}`);
60
- }
61
- await this.dashboardService.saveDashboardToConfig(dashboard);
62
- }
63
- };
64
- exports.DashboardQuestionSqlDatasetConfigSubscriber = DashboardQuestionSqlDatasetConfigSubscriber;
65
- exports.DashboardQuestionSqlDatasetConfigSubscriber = DashboardQuestionSqlDatasetConfigSubscriber = __decorate([
66
- (0, common_1.Injectable)(),
67
- __param(0, (0, typeorm_1.InjectDataSource)()),
68
- __metadata("design:paramtypes", [typeorm_2.DataSource,
69
- module_metadata_helper_service_1.ModuleMetadataHelperService,
70
- dashboard_service_1.DashboardService])
71
- ], DashboardQuestionSqlDatasetConfigSubscriber);
72
- //# sourceMappingURL=dashboard-question-sql-dataset-config.subscriber.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard-question-sql-dataset-config.subscriber.js","sourceRoot":"","sources":["../../src/subscribers/dashboard-question-sql-dataset-config.subscriber.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,6CAAmD;AACnD,2HAA8G;AAC9G,qFAA2E;AAC3E,8FAAyF;AACzF,qEAAkE;AAClE,qCAAyG;AAGlG,IAAM,2CAA2C,GAAjD,MAAM,2CAA2C;IAEpD,YAEI,UAAuC,EAC9B,2BAAwD,EACxD,gBAAkC;QAF1B,eAAU,GAAV,UAAU,CAAY;QAC9B,gCAA2B,GAA3B,2BAA2B,CAA6B;QACxD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAL9B,WAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAOxD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ;QACJ,OAAO,gFAAiC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAqD;QACnE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;YACpG,OAAO;QACX,CAAC;QACD,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAqD;QACnE,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC;QAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;YACpG,OAAO;QACX,CAAC;QACD,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACzE,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,QAA2B,EAAE,aAA4B;QAExF,MAAM,iBAAiB,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,6CAAiB,EAAE;YACrE,KAAK,EAAE;gBACH,EAAE,EAAE,QAAQ,CAAC,EAAE;aAClB;YACD,SAAS,EAAE,CAAC,WAAW,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,+CAA+C,CAAC;SACvJ,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,iBAAiB,EAAE,SAAS,CAAC;QAE/C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1E,CAAC;QAGD,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;CAEJ,CAAA;AAnDY,kGAA2C;sDAA3C,2CAA2C;IADvD,IAAA,mBAAU,GAAE;IAIJ,WAAA,IAAA,0BAAgB,GAAE,CAAA;qCACU,oBAAU;QACD,4DAA2B;QACtC,oCAAgB;GANtC,2CAA2C,CAmDvD","sourcesContent":["import { Injectable, Logger } from \"@nestjs/common\";\nimport { InjectDataSource } from \"@nestjs/typeorm\";\nimport { DashboardQuestionSqlDatasetConfig } from \"src/entities/dashboard-question-sql-dataset-config.entity\";\nimport { DashboardQuestion } from \"src/entities/dashboard-question.entity\";\nimport { ModuleMetadataHelperService } from \"src/helpers/module-metadata-helper.service\";\nimport { DashboardService } from \"src/services/dashboard.service\";\nimport { DataSource, EntityManager, EntitySubscriberInterface, InsertEvent, UpdateEvent } from \"typeorm\";\n\n@Injectable()\nexport class DashboardQuestionSqlDatasetConfigSubscriber implements EntitySubscriberInterface<DashboardQuestionSqlDatasetConfig> {\n private readonly logger = new Logger(this.constructor.name);\n constructor(\n @InjectDataSource()\n private readonly dataSource: DataSource,\n readonly moduleMetadataHelperService: ModuleMetadataHelperService,\n readonly dashboardService: DashboardService, // Assuming you have a DashboardService for custom queries\n ) {\n this.dataSource.subscribers.push(this);\n }\n\n listenTo() {\n return DashboardQuestionSqlDatasetConfig;\n }\n\n async afterInsert(event: InsertEvent<DashboardQuestionSqlDatasetConfig>) {\n const question = event.entity.question;\n if (!question) {\n this.logger.debug('No question found in the QuestionSqlDatasetConfigSubscriber afterInsert method');\n return;\n }\n await this.saveQuestionToConfig(question, event.queryRunner.manager);\n }\n\n async afterUpdate(event: UpdateEvent<DashboardQuestionSqlDatasetConfig>) {\n const question = event.databaseEntity.question;\n if (!question) {\n this.logger.debug('No question found in the QuestionSqlDatasetConfigSubscriber afterUpdate method');\n return;\n }\n await this.saveQuestionToConfig(question, event.queryRunner.manager);\n }\n\n private async saveQuestionToConfig(question: DashboardQuestion, entityManager: EntityManager): Promise<void> {\n // Populate the dashboard for the question\n const populatedQuestion = await entityManager.findOne(DashboardQuestion, {\n where: {\n id: question.id,\n },\n relations: ['dashboard', 'dashboard.module', 'dashboard.dashboardVariables', 'dashboard.questions', 'dashboard.questions.questionSqlDatasetConfigs'],\n });\n const dashboard = populatedQuestion?.dashboard;\n\n if (!dashboard) {\n throw new Error(`Dashboard not found for question id ${question.id}`);\n }\n\n // Call the saveDashboardToConfig method from the DashboardService\n await this.dashboardService.saveDashboardToConfig(dashboard);\n }\n\n}"]}
@@ -1,16 +0,0 @@
1
- import { DashboardQuestion } from "../entities/dashboard-question.entity";
2
- import { ModuleMetadataHelperService } from "../helpers/module-metadata-helper.service";
3
- import { DashboardService } from "../services/dashboard.service";
4
- import { DataSource, EntitySubscriberInterface, InsertEvent, UpdateEvent } from "typeorm";
5
- export declare class DashboardQuestionSubscriber implements EntitySubscriberInterface<DashboardQuestion> {
6
- private readonly dataSource;
7
- readonly moduleMetadataHelperService: ModuleMetadataHelperService;
8
- readonly dashboardService: DashboardService;
9
- private readonly logger;
10
- constructor(dataSource: DataSource, moduleMetadataHelperService: ModuleMetadataHelperService, dashboardService: DashboardService);
11
- listenTo(): typeof DashboardQuestion;
12
- afterInsert(event: InsertEvent<DashboardQuestion>): Promise<void>;
13
- afterUpdate(event: UpdateEvent<DashboardQuestion>): Promise<void>;
14
- private saveDashboardToConfig;
15
- }
16
- //# sourceMappingURL=dashboard-question.subscriber.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard-question.subscriber.d.ts","sourceRoot":"","sources":["../../src/subscribers/dashboard-question.subscriber.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAiB,yBAAyB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEzG,qBACa,2BAA4B,YAAW,yBAAyB,CAAC,iBAAiB,CAAC;IAIxF,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,QAAQ,CAAC,2BAA2B,EAAE,2BAA2B;IACjE,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IAL/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;gBAGvC,UAAU,EAAE,UAAU,EAC9B,2BAA2B,EAAE,2BAA2B,EACxD,gBAAgB,EAAE,gBAAgB;IAK/C,QAAQ;IAIF,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,iBAAiB,CAAC;IAQjD,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,iBAAiB,CAAC;YAQzC,qBAAqB;CAqBtC"}
@@ -1,72 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- 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;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.DashboardQuestionSubscriber = void 0;
16
- const common_1 = require("@nestjs/common");
17
- const typeorm_1 = require("@nestjs/typeorm");
18
- const dashboard_question_entity_1 = require("../entities/dashboard-question.entity");
19
- const dashboard_entity_1 = require("../entities/dashboard.entity");
20
- const module_metadata_helper_service_1 = require("../helpers/module-metadata-helper.service");
21
- const dashboard_service_1 = require("../services/dashboard.service");
22
- const typeorm_2 = require("typeorm");
23
- let DashboardQuestionSubscriber = class DashboardQuestionSubscriber {
24
- constructor(dataSource, moduleMetadataHelperService, dashboardService) {
25
- this.dataSource = dataSource;
26
- this.moduleMetadataHelperService = moduleMetadataHelperService;
27
- this.dashboardService = dashboardService;
28
- this.logger = new common_1.Logger(this.constructor.name);
29
- this.dataSource.subscribers.push(this);
30
- }
31
- listenTo() {
32
- return dashboard_question_entity_1.DashboardQuestion;
33
- }
34
- async afterInsert(event) {
35
- if (!event.entity) {
36
- this.logger.debug('No question entity found in the QuestionSubscriber afterInsert method');
37
- return;
38
- }
39
- await this.saveDashboardToConfig(event.entity, event.queryRunner.manager);
40
- }
41
- async afterUpdate(event) {
42
- if (!event.databaseEntity) {
43
- this.logger.debug('No question entity found in the QuestionSubscriber afterUpdate method');
44
- return;
45
- }
46
- await this.saveDashboardToConfig(event.databaseEntity, event.queryRunner.manager);
47
- }
48
- async saveDashboardToConfig(question, entityManager) {
49
- const dashboard = question.dashboard;
50
- if (!dashboard) {
51
- this.logger.debug(`Dashboard is undefined for question id ${question.id}`);
52
- return;
53
- }
54
- const populatedDashboard = await entityManager.findOne(dashboard_entity_1.Dashboard, {
55
- where: { id: dashboard.id },
56
- relations: ['module', 'dashboardVariables', 'questions', 'questions.questionSqlDatasetConfigs'],
57
- });
58
- if (!populatedDashboard) {
59
- throw new Error(`Dashboard not found for question id ${populatedDashboard.id}`);
60
- }
61
- await this.dashboardService.saveDashboardToConfig(populatedDashboard);
62
- }
63
- };
64
- exports.DashboardQuestionSubscriber = DashboardQuestionSubscriber;
65
- exports.DashboardQuestionSubscriber = DashboardQuestionSubscriber = __decorate([
66
- (0, common_1.Injectable)(),
67
- __param(0, (0, typeorm_1.InjectDataSource)()),
68
- __metadata("design:paramtypes", [typeorm_2.DataSource,
69
- module_metadata_helper_service_1.ModuleMetadataHelperService,
70
- dashboard_service_1.DashboardService])
71
- ], DashboardQuestionSubscriber);
72
- //# sourceMappingURL=dashboard-question.subscriber.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard-question.subscriber.js","sourceRoot":"","sources":["../../src/subscribers/dashboard-question.subscriber.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,6CAAmD;AACnD,qFAA2E;AAC3E,mEAA0D;AAC1D,8FAAyF;AACzF,qEAAkE;AAClE,qCAAyG;AAGlG,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAEpC,YAEI,UAAuC,EAC9B,2BAAwD,EACxD,gBAAkC;QAF1B,eAAU,GAAV,UAAU,CAAY;QAC9B,gCAA2B,GAA3B,2BAA2B,CAA6B;QACxD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAL9B,WAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAOxD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ;QACJ,OAAO,6CAAiB,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAqC;QACnD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;YAC3F,OAAO;QACX,CAAC;QACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAqC;QACnD,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;YAC3F,OAAO;QACX,CAAC;QACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACtF,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,QAA2B,EAAE,aAA4B;QACzF,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAErC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3E,OAAO;QACX,CAAC;QAGD,MAAM,kBAAkB,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,4BAAS,EAAE;YAC9D,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE;YAC3B,SAAS,EAAE,CAAC,QAAQ,EAAC,oBAAoB,EAAE,WAAW,EAAE,qCAAqC,CAAC;SACjG,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,uCAAuC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC;QACpF,CAAC;QAGD,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;IAC1E,CAAC;CACJ,CAAA;AApDY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;IAIJ,WAAA,IAAA,0BAAgB,GAAE,CAAA;qCACU,oBAAU;QACD,4DAA2B;QACtC,oCAAgB;GANtC,2BAA2B,CAoDvC","sourcesContent":["import { Injectable, Logger } from \"@nestjs/common\";\nimport { InjectDataSource } from \"@nestjs/typeorm\";\nimport { DashboardQuestion } from \"src/entities/dashboard-question.entity\";\nimport { Dashboard } from \"src/entities/dashboard.entity\";\nimport { ModuleMetadataHelperService } from \"src/helpers/module-metadata-helper.service\";\nimport { DashboardService } from \"src/services/dashboard.service\";\nimport { DataSource, EntityManager, EntitySubscriberInterface, InsertEvent, UpdateEvent } from \"typeorm\";\n\n@Injectable()\nexport class DashboardQuestionSubscriber implements EntitySubscriberInterface<DashboardQuestion> {\n private readonly logger = new Logger(this.constructor.name);\n constructor(\n @InjectDataSource()\n private readonly dataSource: DataSource,\n readonly moduleMetadataHelperService: ModuleMetadataHelperService,\n readonly dashboardService: DashboardService,\n ) {\n this.dataSource.subscribers.push(this);\n }\n\n listenTo() {\n return DashboardQuestion;\n }\n\n async afterInsert(event: InsertEvent<DashboardQuestion>) {\n if (!event.entity) {\n this.logger.debug('No question entity found in the QuestionSubscriber afterInsert method');\n return;\n }\n await this.saveDashboardToConfig(event.entity, event.queryRunner.manager);\n }\n\n async afterUpdate(event: UpdateEvent<DashboardQuestion>) {\n if (!event.databaseEntity) {\n this.logger.debug('No question entity found in the QuestionSubscriber afterUpdate method');\n return;\n }\n await this.saveDashboardToConfig(event.databaseEntity, event.queryRunner.manager);\n }\n\n private async saveDashboardToConfig(question: DashboardQuestion, entityManager: EntityManager): Promise<void> {\n const dashboard = question.dashboard;\n // Get the dashboard from the question & call the saveDashboardToConfig method\n if (!dashboard) {\n this.logger.debug(`Dashboard is undefined for question id ${question.id}`);\n return;\n }\n\n // populate the dashboard with its variables\n const populatedDashboard = await entityManager.findOne(Dashboard, {\n where: { id: dashboard.id },\n relations: ['module','dashboardVariables', 'questions', 'questions.questionSqlDatasetConfigs'],\n });\n\n if (!populatedDashboard) {\n throw new Error(`Dashboard not found for question id ${populatedDashboard.id}`);\n }\n\n // Call the saveDashboardToConfig method from the DashboardService\n await this.dashboardService.saveDashboardToConfig(populatedDashboard);\n }\n}"]}
@@ -1,16 +0,0 @@
1
- import { DashboardVariable } from "../entities/dashboard-variable.entity";
2
- import { ModuleMetadataHelperService } from "../helpers/module-metadata-helper.service";
3
- import { DashboardService } from "../services/dashboard.service";
4
- import { EntitySubscriberInterface, DataSource, InsertEvent, UpdateEvent } from "typeorm";
5
- export declare class DashboardVariableSubscriber implements EntitySubscriberInterface<DashboardVariable> {
6
- private readonly dataSource;
7
- readonly moduleMetadataHelperService: ModuleMetadataHelperService;
8
- readonly dashboardService: DashboardService;
9
- private readonly logger;
10
- constructor(dataSource: DataSource, moduleMetadataHelperService: ModuleMetadataHelperService, dashboardService: DashboardService);
11
- listenTo(): typeof DashboardVariable;
12
- afterInsert(event: InsertEvent<DashboardVariable>): Promise<void>;
13
- afterUpdate(event: UpdateEvent<DashboardVariable>): Promise<void>;
14
- private saveDashboardToConfig;
15
- }
16
- //# sourceMappingURL=dashboard-variable.subscriber.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard-variable.subscriber.d.ts","sourceRoot":"","sources":["../../src/subscribers/dashboard-variable.subscriber.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AAEzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAiB,MAAM,SAAS,CAAC;AAEzG,qBACa,2BAA4B,YAAW,yBAAyB,CAAC,iBAAiB,CAAC;IAIxF,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,QAAQ,CAAC,2BAA2B,EAAE,2BAA2B;IACjE,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IAL/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;gBAGvC,UAAU,EAAE,UAAU,EAC9B,2BAA2B,EAAE,2BAA2B,EACxD,gBAAgB,EAAE,gBAAgB;IAK/C,QAAQ;IAIF,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,iBAAiB,CAAC;IAQjD,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,iBAAiB,CAAC;YAQzC,qBAAqB;CAqBtC"}
@@ -1,72 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- 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;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.DashboardVariableSubscriber = void 0;
16
- const common_1 = require("@nestjs/common");
17
- const typeorm_1 = require("@nestjs/typeorm");
18
- const dashboard_variable_entity_1 = require("../entities/dashboard-variable.entity");
19
- const dashboard_entity_1 = require("../entities/dashboard.entity");
20
- const module_metadata_helper_service_1 = require("../helpers/module-metadata-helper.service");
21
- const dashboard_service_1 = require("../services/dashboard.service");
22
- const typeorm_2 = require("typeorm");
23
- let DashboardVariableSubscriber = class DashboardVariableSubscriber {
24
- constructor(dataSource, moduleMetadataHelperService, dashboardService) {
25
- this.dataSource = dataSource;
26
- this.moduleMetadataHelperService = moduleMetadataHelperService;
27
- this.dashboardService = dashboardService;
28
- this.logger = new common_1.Logger(this.constructor.name);
29
- this.dataSource.subscribers.push(this);
30
- }
31
- listenTo() {
32
- return dashboard_variable_entity_1.DashboardVariable;
33
- }
34
- async afterInsert(event) {
35
- if (!event.entity) {
36
- this.logger.debug('No dashboard variable entity found in the DashboardVariableSubscriber afterInsert method');
37
- return;
38
- }
39
- await this.saveDashboardToConfig(event.entity, event.queryRunner.manager);
40
- }
41
- async afterUpdate(event) {
42
- if (!event.databaseEntity) {
43
- this.logger.debug('No dashboard variable entity found in the DashboardVariableSubscriber afterUpdate method');
44
- return;
45
- }
46
- await this.saveDashboardToConfig(event.databaseEntity, event.queryRunner.manager);
47
- }
48
- async saveDashboardToConfig(dashboardVariable, entityManager) {
49
- const dashboard = dashboardVariable.dashboard;
50
- if (!dashboard) {
51
- this.logger.debug(`Dashboard is undefined for dashboard variable id ${dashboardVariable.id}`);
52
- return;
53
- }
54
- const populatedDashboard = await entityManager.findOne(dashboard_entity_1.Dashboard, {
55
- where: { id: dashboard.id },
56
- relations: ['module', 'dashboardVariables', 'questions', 'questions.questionSqlDatasetConfigs'],
57
- });
58
- if (!populatedDashboard) {
59
- throw new Error(`Dashboard not found for question id ${populatedDashboard.id}`);
60
- }
61
- await this.dashboardService.saveDashboardToConfig(populatedDashboard);
62
- }
63
- };
64
- exports.DashboardVariableSubscriber = DashboardVariableSubscriber;
65
- exports.DashboardVariableSubscriber = DashboardVariableSubscriber = __decorate([
66
- (0, common_1.Injectable)(),
67
- __param(0, (0, typeorm_1.InjectDataSource)()),
68
- __metadata("design:paramtypes", [typeorm_2.DataSource,
69
- module_metadata_helper_service_1.ModuleMetadataHelperService,
70
- dashboard_service_1.DashboardService])
71
- ], DashboardVariableSubscriber);
72
- //# sourceMappingURL=dashboard-variable.subscriber.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard-variable.subscriber.js","sourceRoot":"","sources":["../../src/subscribers/dashboard-variable.subscriber.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,6CAAmD;AACnD,qFAA2E;AAC3E,mEAA0D;AAC1D,8FAAyF;AAEzF,qEAAkE;AAClE,qCAAyG;AAGlG,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAEpC,YAEI,UAAuC,EAC9B,2BAAwD,EACxD,gBAAkC;QAF1B,eAAU,GAAV,UAAU,CAAY;QAC9B,gCAA2B,GAA3B,2BAA2B,CAA6B;QACxD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAL9B,WAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAOxD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ;QACJ,OAAO,6CAAiB,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAqC;QACnD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;YAC9G,OAAO;QACX,CAAC;QACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAqC;QACnD,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;YAC9G,OAAO;QACX,CAAC;QACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACtF,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,iBAAoC,EAAE,aAA4B;QAClG,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC;QAE9C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oDAAoD,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9F,OAAO;QACX,CAAC;QAGD,MAAM,kBAAkB,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,4BAAS,EAAE;YAC9D,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE;YAC3B,SAAS,EAAE,CAAC,QAAQ,EAAC,oBAAoB,EAAE,WAAW,EAAE,qCAAqC,CAAC;SACjG,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,uCAAuC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC;QACpF,CAAC;QAGD,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;IAC1E,CAAC;CACJ,CAAA;AApDY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;IAIJ,WAAA,IAAA,0BAAgB,GAAE,CAAA;qCACU,oBAAU;QACD,4DAA2B;QACtC,oCAAgB;GANtC,2BAA2B,CAoDvC","sourcesContent":["import { Injectable, Logger } from \"@nestjs/common\";\nimport { InjectDataSource } from \"@nestjs/typeorm\";\nimport { DashboardVariable } from \"src/entities/dashboard-variable.entity\";\nimport { Dashboard } from \"src/entities/dashboard.entity\";\nimport { ModuleMetadataHelperService } from \"src/helpers/module-metadata-helper.service\";\nimport { DashboardVariableService } from \"src/services/dashboard-variable.service\";\nimport { DashboardService } from \"src/services/dashboard.service\";\nimport { EntitySubscriberInterface, DataSource, InsertEvent, UpdateEvent, EntityManager } from \"typeorm\";\n\n@Injectable()\nexport class DashboardVariableSubscriber implements EntitySubscriberInterface<DashboardVariable> {\n private readonly logger = new Logger(this.constructor.name);\n constructor(\n @InjectDataSource()\n private readonly dataSource: DataSource,\n readonly moduleMetadataHelperService: ModuleMetadataHelperService,\n readonly dashboardService: DashboardService, // Assuming you have a DashboardService for custom queries\n ) {\n this.dataSource.subscribers.push(this);\n }\n\n listenTo() {\n return DashboardVariable;\n }\n\n async afterInsert(event: InsertEvent<DashboardVariable>) {\n if (!event.entity) {\n this.logger.debug('No dashboard variable entity found in the DashboardVariableSubscriber afterInsert method');\n return;\n }\n await this.saveDashboardToConfig(event.entity, event.queryRunner.manager);\n }\n\n async afterUpdate(event: UpdateEvent<DashboardVariable>) {\n if (!event.databaseEntity) {\n this.logger.debug('No dashboard variable entity found in the DashboardVariableSubscriber afterUpdate method');\n return;\n }\n await this.saveDashboardToConfig(event.databaseEntity, event.queryRunner.manager);\n }\n\n private async saveDashboardToConfig(dashboardVariable: DashboardVariable, entityManager: EntityManager): Promise<void> {\n const dashboard = dashboardVariable.dashboard;\n // Get the dashboard from the question & call the saveDashboardToConfig method\n if (!dashboard) {\n this.logger.debug(`Dashboard is undefined for dashboard variable id ${dashboardVariable.id}`);\n return;\n }\n\n // populate the dashboard with its variables\n const populatedDashboard = await entityManager.findOne(Dashboard, {\n where: { id: dashboard.id },\n relations: ['module','dashboardVariables', 'questions', 'questions.questionSqlDatasetConfigs'],\n });\n\n if (!populatedDashboard) {\n throw new Error(`Dashboard not found for question id ${populatedDashboard.id}`);\n }\n\n // Call the saveDashboardToConfig method from the DashboardService\n await this.dashboardService.saveDashboardToConfig(populatedDashboard);\n }\n}"]}
@@ -1,16 +0,0 @@
1
- import { Dashboard } from '../entities/dashboard.entity';
2
- import { ModuleMetadataHelperService } from "../helpers/module-metadata-helper.service";
3
- import { DashboardService } from '../services/dashboard.service';
4
- import { DataSource, EntitySubscriberInterface, InsertEvent, UpdateEvent } from "typeorm";
5
- export declare class DashboardSubscriber implements EntitySubscriberInterface<Dashboard> {
6
- private readonly dataSource;
7
- readonly moduleMetadataHelperService: ModuleMetadataHelperService;
8
- readonly dashboardService: DashboardService;
9
- private readonly logger;
10
- constructor(dataSource: DataSource, moduleMetadataHelperService: ModuleMetadataHelperService, dashboardService: DashboardService);
11
- listenTo(): typeof Dashboard;
12
- afterInsert(event: InsertEvent<Dashboard>): Promise<void>;
13
- afterUpdate(event: UpdateEvent<Dashboard>): Promise<void>;
14
- private saveDashboardToConfig;
15
- }
16
- //# sourceMappingURL=dashboard.subscriber.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard.subscriber.d.ts","sourceRoot":"","sources":["../../src/subscribers/dashboard.subscriber.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAiB,yBAAyB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEzG,qBACa,mBAAoB,YAAW,yBAAyB,CAAC,SAAS,CAAC;IAIxE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,QAAQ,CAAC,2BAA2B,EAAE,2BAA2B;IACjE,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IAL/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;gBAGvC,UAAU,EAAE,UAAU,EAC9B,2BAA2B,EAAE,2BAA2B,EACxD,gBAAgB,EAAE,gBAAgB;IAK/C,QAAQ;IAIF,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC;IAQzC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC;YASjC,qBAAqB;CAqBtC"}
@@ -1,71 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- 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;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.DashboardSubscriber = void 0;
16
- const common_1 = require("@nestjs/common");
17
- const typeorm_1 = require("@nestjs/typeorm");
18
- const dashboard_entity_1 = require("../entities/dashboard.entity");
19
- const module_metadata_helper_service_1 = require("../helpers/module-metadata-helper.service");
20
- const dashboard_service_1 = require("../services/dashboard.service");
21
- const typeorm_2 = require("typeorm");
22
- let DashboardSubscriber = class DashboardSubscriber {
23
- constructor(dataSource, moduleMetadataHelperService, dashboardService) {
24
- this.dataSource = dataSource;
25
- this.moduleMetadataHelperService = moduleMetadataHelperService;
26
- this.dashboardService = dashboardService;
27
- this.logger = new common_1.Logger(this.constructor.name);
28
- this.dataSource.subscribers.push(this);
29
- }
30
- listenTo() {
31
- return dashboard_entity_1.Dashboard;
32
- }
33
- async afterInsert(event) {
34
- if (!event.entity) {
35
- this.logger.debug('No dashboard entity found in the DashboardSubscriber afterInsert method');
36
- return;
37
- }
38
- await this.saveDashboardToConfig(event.entity, event.queryRunner.manager);
39
- }
40
- async afterUpdate(event) {
41
- if (!event.entity) {
42
- this.logger.debug('No dashboard entity found in the DashboardSubscriber afterInsert method');
43
- return;
44
- }
45
- await this.saveDashboardToConfig(event.databaseEntity, event.queryRunner.manager);
46
- }
47
- async saveDashboardToConfig(dashboard, entityManager) {
48
- if (!dashboard || !dashboard.id) {
49
- this.logger.debug('Dashboard or dashboard id is undefined');
50
- return;
51
- }
52
- const populatedDashboard = await entityManager.findOne(dashboard_entity_1.Dashboard, {
53
- where: { id: dashboard.id },
54
- relations: ['module', 'dashboardVariables', 'questions', 'questions.questionSqlDatasetConfigs'],
55
- });
56
- if (!populatedDashboard) {
57
- this.logger.error(`Dashboard not found for id ${dashboard.id}`);
58
- return;
59
- }
60
- await this.dashboardService.saveDashboardToConfig(populatedDashboard);
61
- }
62
- };
63
- exports.DashboardSubscriber = DashboardSubscriber;
64
- exports.DashboardSubscriber = DashboardSubscriber = __decorate([
65
- (0, common_1.Injectable)(),
66
- __param(0, (0, typeorm_1.InjectDataSource)()),
67
- __metadata("design:paramtypes", [typeorm_2.DataSource,
68
- module_metadata_helper_service_1.ModuleMetadataHelperService,
69
- dashboard_service_1.DashboardService])
70
- ], DashboardSubscriber);
71
- //# sourceMappingURL=dashboard.subscriber.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard.subscriber.js","sourceRoot":"","sources":["../../src/subscribers/dashboard.subscriber.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,6CAAmD;AACnD,mEAA0D;AAC1D,8FAAyF;AACzF,qEAAkE;AAClE,qCAAyG;AAGlG,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAE5B,YAEI,UAAuC,EAC9B,2BAAwD,EACxD,gBAAkC;QAF1B,eAAU,GAAV,UAAU,CAAY;QAC9B,gCAA2B,GAA3B,2BAA2B,CAA6B;QACxD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAL9B,WAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAOxD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ;QACJ,OAAO,4BAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAA6B;QAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;YAC7F,OAAO;QACX,CAAC;QACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAA6B;QAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;YAC7F,OAAO;QACX,CAAC;QAED,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACtF,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,SAAoB,EAAE,aAA4B;QAClF,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC5D,OAAO;QACX,CAAC;QAGD,MAAM,kBAAkB,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,4BAAS,EAAE;YAC9D,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE;YAC3B,SAAS,EAAE,CAAC,QAAQ,EAAC,oBAAoB,EAAE,WAAW,EAAE,qCAAqC,CAAC;SACjG,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;YAChE,OAAO;QACX,CAAC;QAGD,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;IAC1E,CAAC;CAEJ,CAAA;AArDY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;IAIJ,WAAA,IAAA,0BAAgB,GAAE,CAAA;qCACU,oBAAU;QACD,4DAA2B;QACtC,oCAAgB;GANtC,mBAAmB,CAqD/B","sourcesContent":["import { Injectable, Logger } from '@nestjs/common';\nimport { InjectDataSource } from \"@nestjs/typeorm\";\nimport { Dashboard } from 'src/entities/dashboard.entity';\nimport { ModuleMetadataHelperService } from \"src/helpers/module-metadata-helper.service\";\nimport { DashboardService } from 'src/services/dashboard.service';\nimport { DataSource, EntityManager, EntitySubscriberInterface, InsertEvent, UpdateEvent } from \"typeorm\";\n\n@Injectable()\nexport class DashboardSubscriber implements EntitySubscriberInterface<Dashboard> {\n private readonly logger = new Logger(this.constructor.name);\n constructor(\n @InjectDataSource()\n private readonly dataSource: DataSource,\n readonly moduleMetadataHelperService: ModuleMetadataHelperService,\n readonly dashboardService: DashboardService, // Assuming you have a DashboardService for custom queries\n ) {\n this.dataSource.subscribers.push(this);\n }\n\n listenTo() {\n return Dashboard;\n }\n\n async afterInsert(event: InsertEvent<Dashboard>) {\n if (!event.entity) {\n this.logger.debug('No dashboard entity found in the DashboardSubscriber afterInsert method');\n return;\n }\n await this.saveDashboardToConfig(event.entity, event.queryRunner.manager);\n }\n\n async afterUpdate(event: UpdateEvent<Dashboard>) {\n if (!event.entity) {\n this.logger.debug('No dashboard entity found in the DashboardSubscriber afterInsert method');\n return;\n }\n\n await this.saveDashboardToConfig(event.databaseEntity, event.queryRunner.manager);\n }\n\n private async saveDashboardToConfig(dashboard: Dashboard, entityManager: EntityManager): Promise<void> {\n if (!dashboard || !dashboard.id) {\n this.logger.debug('Dashboard or dashboard id is undefined');\n return;\n }\n\n // Load the dashboard with module relation populated\n const populatedDashboard = await entityManager.findOne(Dashboard, {\n where: { id: dashboard.id },\n relations: ['module','dashboardVariables', 'questions', 'questions.questionSqlDatasetConfigs'],\n });\n\n if (!populatedDashboard) {\n this.logger.error(`Dashboard not found for id ${dashboard.id}`);\n return;\n }\n\n // Call the saveDashboardToConfig method from the DashboardService\n await this.dashboardService.saveDashboardToConfig(populatedDashboard);\n }\n\n}"]}