rez_core 4.0.154 → 4.0.156

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 (488) hide show
  1. package/.claude/settings.local.json +26 -0
  2. package/.idea/250218_nodejs_core.iml +9 -0
  3. package/.idea/codeStyles/Project.xml +59 -0
  4. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  5. package/.idea/copilot.data.migration.agent.xml +6 -0
  6. package/.idea/copilot.data.migration.ask.xml +6 -0
  7. package/.idea/copilot.data.migration.ask2agent.xml +6 -0
  8. package/.idea/copilot.data.migration.edit.xml +6 -0
  9. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  10. package/.idea/misc.xml +6 -0
  11. package/.idea/modules.xml +8 -0
  12. package/.idea/prettier.xml +6 -0
  13. package/.idea/vcs.xml +6 -0
  14. package/.prettierrc +3 -3
  15. package/README.md +99 -99
  16. package/dist/config/config.module.js +2 -2
  17. package/dist/config/config.module.js.map +1 -1
  18. package/dist/config/database.config.d.ts +1 -1
  19. package/dist/config/database.config.js +15 -11
  20. package/dist/config/database.config.js.map +1 -1
  21. package/dist/module/auth/guards/role.guard.js +3 -3
  22. package/dist/module/auth/services/auth.service.js +3 -3
  23. package/dist/module/auth/services/auth.service.js.map +1 -1
  24. package/dist/module/enterprise/entity/organization.entity.js +1 -1
  25. package/dist/module/enterprise/repository/school.repository.js +3 -3
  26. package/dist/module/enterprise/repository/school.repository.js.map +1 -1
  27. package/dist/module/filter/repository/saved-filter.repository.js +4 -4
  28. package/dist/module/filter/service/filter-evaluator.service.js +3 -3
  29. package/dist/module/filter/service/filter-evaluator.service.js.map +1 -1
  30. package/dist/module/filter/service/filter.service.d.ts +4 -1
  31. package/dist/module/filter/service/filter.service.js +50 -31
  32. package/dist/module/filter/service/filter.service.js.map +1 -1
  33. package/dist/module/integration/entity/integration-config.entity.js +6 -6
  34. package/dist/module/integration/entity/integration-config.entity.js.map +1 -1
  35. package/dist/module/integration/entity/integration-entity-mapper.entity.js +1 -1
  36. package/dist/module/integration/entity/integration-entity-mapper.entity.js.map +1 -1
  37. package/dist/module/integration/entity/integration-source.entity.js +4 -4
  38. package/dist/module/integration/entity/integration-source.entity.js.map +1 -1
  39. package/dist/module/integration/entity/user-integration.entity.js +4 -4
  40. package/dist/module/integration/entity/user-integration.entity.js.map +1 -1
  41. package/dist/module/integration/examples/usage.example.js +9 -9
  42. package/dist/module/integration/service/integration.service.js +1 -1
  43. package/dist/module/integration/service/wrapper.service.d.ts +1 -3
  44. package/dist/module/integration/service/wrapper.service.js +65 -67
  45. package/dist/module/integration/service/wrapper.service.js.map +1 -1
  46. package/dist/module/listmaster/entity/list-master-items.entity.js +3 -3
  47. package/dist/module/listmaster/entity/list-master-items.entity.js.map +1 -1
  48. package/dist/module/listmaster/entity/list-master.entity.js +4 -4
  49. package/dist/module/listmaster/entity/list-master.entity.js.map +1 -1
  50. package/dist/module/listmaster/service/list-master-item.service.js +3 -3
  51. package/dist/module/listmaster/service/list-master-item.service.js.map +1 -1
  52. package/dist/module/mapper/entity/field-mapper.entity.js +6 -6
  53. package/dist/module/mapper/entity/field-mapper.entity.js.map +1 -1
  54. package/dist/module/mapper/service/field-mapper.service.js +7 -7
  55. package/dist/module/mapper/service/field-mapper.service.js.map +1 -1
  56. package/dist/module/mapper/service/mapper.service.js +4 -4
  57. package/dist/module/mapper/service/mapper.service.js.map +1 -1
  58. package/dist/module/meta/entity/app-master.entity.d.ts +2 -2
  59. package/dist/module/meta/entity/app-master.entity.js +4 -4
  60. package/dist/module/meta/entity/entity-master.entity.js +1 -1
  61. package/dist/module/meta/entity/entity-master.entity.js.map +1 -1
  62. package/dist/module/meta/entity/view-master.entity.js +1 -1
  63. package/dist/module/meta/entity/view-master.entity.js.map +1 -1
  64. package/dist/module/meta/repository/attribute-master.repository.js +2 -2
  65. package/dist/module/meta/repository/attribute-master.repository.js.map +1 -1
  66. package/dist/module/meta/repository/entity-master.repository.js +1 -1
  67. package/dist/module/meta/repository/entity-master.repository.js.map +1 -1
  68. package/dist/module/meta/service/attribute-master.service.js +1 -1
  69. package/dist/module/meta/service/attribute-master.service.js.map +1 -1
  70. package/dist/module/meta/service/entity-dynamic.service.js +27 -27
  71. package/dist/module/meta/service/entity-dynamic.service.js.map +1 -1
  72. package/dist/module/meta/service/entity-list.service.js +3 -3
  73. package/dist/module/meta/service/entity-master.service.js +4 -4
  74. package/dist/module/meta/service/entity-master.service.js.map +1 -1
  75. package/dist/module/meta/service/entity-relation.service.js +13 -13
  76. package/dist/module/meta/service/entity-relation.service.js.map +1 -1
  77. package/dist/module/meta/service/entity-service-impl.service.js +3 -3
  78. package/dist/module/meta/service/media-data.service.js +9 -9
  79. package/dist/module/meta/service/media-data.service.js.map +1 -1
  80. package/dist/module/meta/service/resolver.service.js +19 -19
  81. package/dist/module/meta/service/resolver.service.js.map +1 -1
  82. package/dist/module/module/repository/menu.repository.js +12 -12
  83. package/dist/module/notification/entity/otp.entity.js +1 -1
  84. package/dist/module/notification/entity/otp.entity.js.map +1 -1
  85. package/dist/module/notification/service/notification.service.js +9 -9
  86. package/dist/module/user/controller/login.controller.js +18 -18
  87. package/dist/module/user/entity/user-role-mapping.entity.js +1 -1
  88. package/dist/module/user/entity/user-role-mapping.entity.js.map +1 -1
  89. package/dist/module/user/service/login.service.js +1 -1
  90. package/dist/module/user/service/login.service.js.map +1 -1
  91. package/dist/module/user/service/role.service.js +4 -4
  92. package/dist/module/user/service/user-session.service.js +4 -4
  93. package/dist/module/user/service/user-session.service.js.map +1 -1
  94. package/dist/module/workflow/entity/action-data.entity.js +1 -1
  95. package/dist/module/workflow/entity/action-data.entity.js.map +1 -1
  96. package/dist/module/workflow/entity/action.entity.d.ts +0 -1
  97. package/dist/module/workflow/entity/action.entity.js +1 -5
  98. package/dist/module/workflow/entity/action.entity.js.map +1 -1
  99. package/dist/module/workflow/entity/comm-template.entity.js +1 -1
  100. package/dist/module/workflow/entity/comm-template.entity.js.map +1 -1
  101. package/dist/module/workflow/entity/template-attach-mapper.entity.js +1 -1
  102. package/dist/module/workflow/entity/template-attach-mapper.entity.js.map +1 -1
  103. package/dist/module/workflow/repository/action-data.repository.js +4 -5
  104. package/dist/module/workflow/repository/action-data.repository.js.map +1 -1
  105. package/dist/module/workflow/repository/action.repository.js +21 -21
  106. package/dist/module/workflow/repository/action.repository.js.map +1 -1
  107. package/dist/module/workflow/repository/comm-template.repository.js +7 -7
  108. package/dist/module/workflow/repository/comm-template.repository.js.map +1 -1
  109. package/dist/module/workflow/repository/form-master.repository.js +3 -3
  110. package/dist/module/workflow/repository/form-master.repository.js.map +1 -1
  111. package/dist/module/workflow/repository/stage-group.repository.js +23 -23
  112. package/dist/module/workflow/repository/stage-movement.repository.js +17 -17
  113. package/dist/module/workflow/repository/stage-movement.repository.js.map +1 -1
  114. package/dist/module/workflow/repository/stage.repository.js +8 -8
  115. package/dist/module/workflow/repository/task.repository.d.ts +1 -3
  116. package/dist/module/workflow/repository/task.repository.js +3 -8
  117. package/dist/module/workflow/repository/task.repository.js.map +1 -1
  118. package/dist/module/workflow/service/action-template-mapping.service.js +22 -22
  119. package/dist/module/workflow/service/action.service.js +13 -13
  120. package/dist/module/workflow/service/action.service.js.map +1 -1
  121. package/dist/module/workflow/service/entity-modification.service.js +6 -6
  122. package/dist/module/workflow/service/populate-workflow.service.js +8 -8
  123. package/dist/module/workflow/service/populate-workflow.service.js.map +1 -1
  124. package/dist/module/workflow/service/stage-group.service.js +6 -6
  125. package/dist/module/workflow/service/stage-group.service.js.map +1 -1
  126. package/dist/module/workflow/service/stage.service.js +4 -4
  127. package/dist/module/workflow/service/stage.service.js.map +1 -1
  128. package/dist/module/workflow/service/task.service.js +55 -71
  129. package/dist/module/workflow/service/task.service.js.map +1 -1
  130. package/dist/module/workflow/service/workflow-list-master.service.js +16 -16
  131. package/dist/module/workflow/service/workflow-list-master.service.js.map +1 -1
  132. package/dist/module/workflow/service/workflow-meta.service.js +51 -53
  133. package/dist/module/workflow/service/workflow-meta.service.js.map +1 -1
  134. package/dist/module/workflow/service/workflow.service.js +5 -5
  135. package/dist/module/workflow/service/workflow.service.js.map +1 -1
  136. package/dist/module/workflow-automation/controller/workflow-automation.controller.d.ts +0 -6
  137. package/dist/module/workflow-automation/controller/workflow-automation.controller.js +0 -16
  138. package/dist/module/workflow-automation/controller/workflow-automation.controller.js.map +1 -1
  139. package/dist/module/workflow-automation/entity/workflow-automation-action.entity.d.ts +1 -1
  140. package/dist/module/workflow-automation/entity/workflow-automation-action.entity.js +1 -1
  141. package/dist/module/workflow-automation/entity/workflow-automation.entity.d.ts +0 -1
  142. package/dist/module/workflow-automation/entity/workflow-automation.entity.js +0 -4
  143. package/dist/module/workflow-automation/entity/workflow-automation.entity.js.map +1 -1
  144. package/dist/module/workflow-automation/service/workflow-automation-engine.service.js +1 -1
  145. package/dist/module/workflow-automation/service/workflow-automation-engine.service.js.map +1 -1
  146. package/dist/module/workflow-automation/service/workflow-automation.service.d.ts +0 -5
  147. package/dist/module/workflow-automation/service/workflow-automation.service.js +4 -49
  148. package/dist/module/workflow-automation/service/workflow-automation.service.js.map +1 -1
  149. package/dist/tsconfig.build.tsbuildinfo +1 -1
  150. package/dist/utils/service/loggingUtil.service.d.ts +2 -9
  151. package/dist/utils/service/loggingUtil.service.js +14 -65
  152. package/dist/utils/service/loggingUtil.service.js.map +1 -1
  153. package/dist/utils/service/reflection-helper.service.js +3 -3
  154. package/dist/utils/service/reflection-helper.service.js.map +1 -1
  155. package/dist/utils/utils.module.js +0 -2
  156. package/dist/utils/utils.module.js.map +1 -1
  157. package/docs/modules/event-driven-integration-design.md +91 -91
  158. package/docs/modules/integration.md +250 -250
  159. package/eslint.config.mjs +34 -34
  160. package/nest-cli.json +14 -14
  161. package/package.json +120 -119
  162. package/server.log +850 -0
  163. package/src/app.controller.ts +12 -12
  164. package/src/app.module.ts +52 -52
  165. package/src/app.service.ts +8 -8
  166. package/src/config/config.module.ts +17 -18
  167. package/src/config/database.config.ts +48 -23
  168. package/src/constant/global.constant.ts +67 -67
  169. package/src/core.module.ts +81 -81
  170. package/src/decorators/roles.decorator.ts +7 -7
  171. package/src/dtos/response.dto.ts +6 -6
  172. package/src/dtos/response.ts +5 -5
  173. package/src/index.ts +1 -1
  174. package/src/module/auth/auth.module.ts +49 -49
  175. package/src/module/auth/controller/auth.controller.ts +28 -28
  176. package/src/module/auth/guards/google-auth.guard.ts +9 -9
  177. package/src/module/auth/guards/jwt.guard.ts +22 -22
  178. package/src/module/auth/guards/role.guard.ts +68 -68
  179. package/src/module/auth/services/auth.service.ts +50 -50
  180. package/src/module/auth/services/jwt.service.ts +11 -11
  181. package/src/module/auth/strategies/google.strategy.ts +54 -54
  182. package/src/module/auth/strategies/jwt.strategy.ts +58 -58
  183. package/src/module/auth/strategies/local.strategy.ts +13 -13
  184. package/src/module/dashboard/controller/dashboard.controller.ts +36 -36
  185. package/src/module/dashboard/dashboard.module.ts +21 -21
  186. package/src/module/dashboard/entity/dashboard_page_data.entity.ts +27 -27
  187. package/src/module/dashboard/entity/widget_master.entity.ts +18 -18
  188. package/src/module/dashboard/repository/dashboard.repository.ts +42 -42
  189. package/src/module/dashboard/service/dashboard.service.ts +73 -73
  190. package/src/module/dev/dev.module.ts +12 -12
  191. package/src/module/dev/service/dev.service.ts +7 -7
  192. package/src/module/enterprise/controller/organization.controller.ts +36 -36
  193. package/src/module/enterprise/enterprise.module.ts +30 -30
  194. package/src/module/enterprise/entity/enterprise.entity.ts +37 -37
  195. package/src/module/enterprise/entity/organization-app-mapping.entity.ts +13 -13
  196. package/src/module/enterprise/entity/organization.entity.ts +92 -92
  197. package/src/module/enterprise/repository/enterprise.repository.ts +31 -31
  198. package/src/module/enterprise/repository/organization.repository.ts +26 -26
  199. package/src/module/enterprise/repository/school.repository.ts +278 -278
  200. package/src/module/enterprise/service/brand.service.ts +5 -5
  201. package/src/module/enterprise/service/enterprise.service.ts +16 -16
  202. package/src/module/enterprise/service/organization-app-mapping.service.ts +4 -4
  203. package/src/module/enterprise/service/organization.service.ts +145 -145
  204. package/src/module/filter/controller/filter.controller.ts +84 -84
  205. package/src/module/filter/dto/filter-request.dto.ts +38 -38
  206. package/src/module/filter/entity/saved-filter-detail.entity.ts +41 -41
  207. package/src/module/filter/entity/saved-filter-master.entity.ts +23 -23
  208. package/src/module/filter/filter.module.ts +31 -31
  209. package/src/module/filter/repository/saved-filter.repository.ts +168 -168
  210. package/src/module/filter/service/filter-evaluator.service.ts +86 -86
  211. package/src/module/filter/service/filter.service.ts +1034 -1005
  212. package/src/module/filter/service/saved-filter.service.ts +170 -170
  213. package/src/module/ics/controller/ics.controller.ts +21 -21
  214. package/src/module/ics/dto/ics.dto.ts +55 -55
  215. package/src/module/ics/ics.module.ts +13 -13
  216. package/src/module/ics/service/ics.service.ts +57 -57
  217. package/src/module/integration/controller/calender-event.controller.ts +31 -31
  218. package/src/module/integration/controller/integration.controller.ts +662 -662
  219. package/src/module/integration/controller/wrapper.controller.ts +37 -37
  220. package/src/module/integration/dto/create-config.dto.ts +526 -526
  221. package/src/module/integration/entity/integration-config.entity.ts +112 -112
  222. package/src/module/integration/entity/integration-entity-mapper.entity.ts +14 -14
  223. package/src/module/integration/entity/integration-source.entity.ts +17 -17
  224. package/src/module/integration/entity/user-integration.entity.ts +71 -71
  225. package/src/module/integration/examples/usage.example.ts +338 -338
  226. package/src/module/integration/factories/base.factory.ts +7 -7
  227. package/src/module/integration/factories/email.factory.ts +49 -49
  228. package/src/module/integration/factories/integration.factory.ts +121 -121
  229. package/src/module/integration/factories/sms.factory.ts +51 -51
  230. package/src/module/integration/factories/telephone.factory.ts +41 -41
  231. package/src/module/integration/factories/whatsapp.factory.ts +56 -56
  232. package/src/module/integration/integration.module.ts +110 -110
  233. package/src/module/integration/service/calendar-event.service.ts +118 -118
  234. package/src/module/integration/service/integration-entity-mapper.service.ts +17 -17
  235. package/src/module/integration/service/integration-queue.service.ts +229 -229
  236. package/src/module/integration/service/integration.service.ts +2633 -2633
  237. package/src/module/integration/service/oauth.service.ts +224 -224
  238. package/src/module/integration/service/wrapper.service.ts +494 -700
  239. package/src/module/integration/strategies/email/gmail-api.strategy.ts +280 -280
  240. package/src/module/integration/strategies/email/outlook-api.strategy.ts +44 -44
  241. package/src/module/integration/strategies/email/outlook.strategy.ts +64 -64
  242. package/src/module/integration/strategies/email/sendgrid-api.strategy.ts +260 -260
  243. package/src/module/integration/strategies/integration.strategy.ts +97 -97
  244. package/src/module/integration/strategies/sms/gupshup-sms.strategy.ts +146 -146
  245. package/src/module/integration/strategies/sms/msg91-sms.strategy.ts +164 -164
  246. package/src/module/integration/strategies/sms/tubelight-sms.strategy.ts +163 -163
  247. package/src/module/integration/strategies/telephone/ozonetel-voice.strategy.ts +238 -238
  248. package/src/module/integration/strategies/telephone/tubelight-voice.strategy.ts +210 -210
  249. package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +359 -359
  250. package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +372 -372
  251. package/src/module/integration/strategies/whatsapp/whatsapp-cloud.strategy.ts +403 -403
  252. package/src/module/integration/strategies/whatsapp/whatsapp.strategy.ts +57 -57
  253. package/src/module/layout/controller/layout.controller.ts +47 -47
  254. package/src/module/layout/entity/header-items.entity.ts +28 -28
  255. package/src/module/layout/entity/header-section.entity.ts +19 -19
  256. package/src/module/layout/layout.module.ts +21 -21
  257. package/src/module/layout/repository/header-items.repository.ts +18 -18
  258. package/src/module/layout/repository/header-section.repository.ts +22 -22
  259. package/src/module/layout/service/header-section.service.ts +25 -25
  260. package/src/module/layout_preference/controller/layout_preference.controller.ts +73 -73
  261. package/src/module/layout_preference/entity/layout_preference.entity.ts +28 -28
  262. package/src/module/layout_preference/layout_preference.module.ts +22 -22
  263. package/src/module/layout_preference/repository/layout_preference.repository.ts +65 -65
  264. package/src/module/layout_preference/service/layout_preference.service.ts +191 -191
  265. package/src/module/lead/controller/lead.controller.ts +30 -30
  266. package/src/module/lead/lead.module.ts +14 -14
  267. package/src/module/lead/repository/lead.repository.ts +41 -41
  268. package/src/module/lead/service/lead.service.ts +54 -54
  269. package/src/module/listmaster/controller/list-master.controller.ts +230 -230
  270. package/src/module/listmaster/entity/list-master-items.entity.ts +43 -43
  271. package/src/module/listmaster/entity/list-master.entity.ts +33 -33
  272. package/src/module/listmaster/listmaster.module.ts +46 -46
  273. package/src/module/listmaster/repository/list-master-items.repository.ts +169 -169
  274. package/src/module/listmaster/repository/list-master.repository.ts +46 -46
  275. package/src/module/listmaster/service/list-master-engine.ts +19 -19
  276. package/src/module/listmaster/service/list-master-extension.interface.ts +4 -4
  277. package/src/module/listmaster/service/list-master-item.service.ts +292 -292
  278. package/src/module/listmaster/service/list-master-registry.ts +15 -15
  279. package/src/module/listmaster/service/list-master.service.ts +535 -535
  280. package/src/module/mapper/controller/field-mapper.controller.ts +76 -76
  281. package/src/module/mapper/controller/mapper.controller.ts +20 -20
  282. package/src/module/mapper/dto/field-mapper.dto.ts +14 -14
  283. package/src/module/mapper/entity/field-lovs.entity.ts +19 -19
  284. package/src/module/mapper/entity/field-mapper.entity.ts +53 -53
  285. package/src/module/mapper/entity/mapper.entity.ts +16 -16
  286. package/src/module/mapper/mapper.module.ts +34 -34
  287. package/src/module/mapper/repository/field-lovs.repository.ts +35 -35
  288. package/src/module/mapper/repository/field-mapper.repository.ts +42 -42
  289. package/src/module/mapper/repository/mapper.repository.ts +15 -15
  290. package/src/module/mapper/service/field-mapper.service.ts +266 -271
  291. package/src/module/mapper/service/mapper.service.ts +79 -79
  292. package/src/module/master/controller/master.controller.ts +74 -74
  293. package/src/module/master/service/master.service.ts +483 -483
  294. package/src/module/meta/controller/app-master.controller.ts +38 -38
  295. package/src/module/meta/controller/attribute-master.controller.ts +66 -66
  296. package/src/module/meta/controller/entity-dynamic.controller.ts +125 -125
  297. package/src/module/meta/controller/entity-master.controller.ts +28 -28
  298. package/src/module/meta/controller/entity-relation.controller.ts +36 -36
  299. package/src/module/meta/controller/entity.controller.ts +392 -392
  300. package/src/module/meta/controller/entity.public.controller.ts +75 -75
  301. package/src/module/meta/controller/media.controller.ts +107 -107
  302. package/src/module/meta/controller/meta.controller.ts +96 -96
  303. package/src/module/meta/controller/view-master.controller.ts +86 -86
  304. package/src/module/meta/dto/entity-list-data.dto.ts +6 -6
  305. package/src/module/meta/dto/entity-tab.dto.ts +4 -4
  306. package/src/module/meta/dto/entity-table.dto.ts +9 -9
  307. package/src/module/meta/entity/app-master.entity.ts +34 -34
  308. package/src/module/meta/entity/attribute-master.entity.ts +89 -89
  309. package/src/module/meta/entity/base-entity.entity.ts +75 -75
  310. package/src/module/meta/entity/entity-master.entity.ts +85 -85
  311. package/src/module/meta/entity/entity-relation-data.entity.ts +29 -29
  312. package/src/module/meta/entity/entity-relation.entity.ts +23 -23
  313. package/src/module/meta/entity/entity-table-column.entity.ts +61 -61
  314. package/src/module/meta/entity/entity-table.entity.ts +50 -50
  315. package/src/module/meta/entity/media-data.entity.ts +32 -32
  316. package/src/module/meta/entity/preference.entity.ts +62 -62
  317. package/src/module/meta/entity/view-master.entity.ts +41 -41
  318. package/src/module/meta/entity.module.ts +158 -158
  319. package/src/module/meta/repository/app-master.repository.ts +20 -20
  320. package/src/module/meta/repository/attribute-master.repository.ts +118 -118
  321. package/src/module/meta/repository/entity-master.repository.ts +69 -69
  322. package/src/module/meta/repository/entity-table-column.repository.ts +39 -39
  323. package/src/module/meta/repository/entity-table.repository.ts +53 -53
  324. package/src/module/meta/repository/media-data.repository.ts +50 -50
  325. package/src/module/meta/repository/preference.repository.ts +20 -20
  326. package/src/module/meta/repository/user-app-mapping.repository.ts +28 -28
  327. package/src/module/meta/repository/view-master.repository.ts +42 -42
  328. package/src/module/meta/service/app-master.service.ts +37 -37
  329. package/src/module/meta/service/attribute-master.service.ts +126 -126
  330. package/src/module/meta/service/common.service.ts +9 -9
  331. package/src/module/meta/service/entity-dynamic.service.ts +819 -819
  332. package/src/module/meta/service/entity-list.service.ts +205 -205
  333. package/src/module/meta/service/entity-master.service.ts +169 -169
  334. package/src/module/meta/service/entity-realation-data.service.ts +9 -9
  335. package/src/module/meta/service/entity-relation.service.ts +69 -69
  336. package/src/module/meta/service/entity-service-impl.service.ts +525 -525
  337. package/src/module/meta/service/entity-table-column.service.ts +39 -39
  338. package/src/module/meta/service/entity-table.service.ts +150 -150
  339. package/src/module/meta/service/entity-validation.service.ts +187 -187
  340. package/src/module/meta/service/entity.service.ts +67 -67
  341. package/src/module/meta/service/field-group.service.ts +103 -103
  342. package/src/module/meta/service/media-data.service.ts +507 -507
  343. package/src/module/meta/service/populate-meta.service.ts +193 -193
  344. package/src/module/meta/service/preference.service.ts +16 -16
  345. package/src/module/meta/service/resolver.service.ts +267 -267
  346. package/src/module/meta/service/section-master.service.ts +104 -104
  347. package/src/module/meta/service/update-form-json.service.ts +22 -22
  348. package/src/module/meta/service/user-app-mapping.service.ts +17 -17
  349. package/src/module/meta/service/view-master.service.ts +127 -127
  350. package/src/module/microservice-client/microservice-clients.module.ts +13 -13
  351. package/src/module/microservice-client/service/microservice-client-factory.ts +37 -37
  352. package/src/module/microservice-client/service/microservice-clients.ts +4 -4
  353. package/src/module/module/controller/menu.controller.ts +15 -15
  354. package/src/module/module/controller/module-access.controller.ts +134 -134
  355. package/src/module/module/entity/menu.entity.ts +43 -43
  356. package/src/module/module/entity/module-access.entity.ts +25 -25
  357. package/src/module/module/entity/module-action.entity.ts +17 -17
  358. package/src/module/module/entity/module.entity.ts +52 -52
  359. package/src/module/module/module.module.ts +42 -42
  360. package/src/module/module/repository/menu.repository.ts +184 -184
  361. package/src/module/module/repository/module-access.repository.ts +344 -344
  362. package/src/module/module/service/menu.service.ts +82 -82
  363. package/src/module/module/service/module-access.service.ts +209 -209
  364. package/src/module/notification/controller/notification.controller.ts +58 -58
  365. package/src/module/notification/controller/otp.controller.ts +117 -117
  366. package/src/module/notification/entity/notification.entity.ts +26 -26
  367. package/src/module/notification/entity/otp.entity.ts +28 -28
  368. package/src/module/notification/firebase-admin.config.ts +22 -22
  369. package/src/module/notification/notification.module.ts +69 -69
  370. package/src/module/notification/repository/otp.repository.ts +27 -27
  371. package/src/module/notification/service/email.service.ts +127 -127
  372. package/src/module/notification/service/notification.service.ts +163 -163
  373. package/src/module/notification/service/otp.service.ts +132 -132
  374. package/src/module/third-party-module/entity/third-party-api-registry.entity.ts +52 -52
  375. package/src/module/third-party-module/repository/third-party-api-registry.repository.ts +20 -20
  376. package/src/module/third-party-module/service/api-registry.service.ts +13 -13
  377. package/src/module/third-party-module/third-party.module.ts +12 -12
  378. package/src/module/user/controller/login.controller.ts +197 -197
  379. package/src/module/user/controller/user.controller.ts +40 -40
  380. package/src/module/user/dto/create-user.dto.ts +62 -62
  381. package/src/module/user/dto/update-user.dto.ts +4 -4
  382. package/src/module/user/entity/role.entity.ts +33 -33
  383. package/src/module/user/entity/user-role-mapping.entity.ts +38 -38
  384. package/src/module/user/entity/user-session.entity.ts +73 -73
  385. package/src/module/user/entity/user.entity.ts +59 -59
  386. package/src/module/user/repository/role.repository.ts +96 -96
  387. package/src/module/user/repository/user-role-mapping.repository.ts +126 -126
  388. package/src/module/user/repository/user.repository.ts +50 -50
  389. package/src/module/user/repository/userSession.repository.ts +33 -33
  390. package/src/module/user/service/login.service.ts +304 -304
  391. package/src/module/user/service/role.service.ts +189 -189
  392. package/src/module/user/service/user-role-mapping.service.ts +98 -98
  393. package/src/module/user/service/user-session.service.ts +168 -168
  394. package/src/module/user/service/user.service.ts +365 -365
  395. package/src/module/user/user.module.ts +65 -65
  396. package/src/module/workflow/controller/action-category.controller.ts +54 -54
  397. package/src/module/workflow/controller/action-resource-mapping.controller.ts +23 -23
  398. package/src/module/workflow/controller/action-template-mapping.controller.ts +35 -35
  399. package/src/module/workflow/controller/action.controller.ts +111 -111
  400. package/src/module/workflow/controller/activity-log.controller.ts +55 -55
  401. package/src/module/workflow/controller/comm-template.controller.ts +43 -43
  402. package/src/module/workflow/controller/entity-modification.controller.ts +35 -35
  403. package/src/module/workflow/controller/form-master.controller.ts +43 -43
  404. package/src/module/workflow/controller/stage-group.controller.ts +48 -48
  405. package/src/module/workflow/controller/stage.controller.ts +50 -50
  406. package/src/module/workflow/controller/task.controller.ts +77 -77
  407. package/src/module/workflow/controller/workflow-list-master.controller.ts +44 -44
  408. package/src/module/workflow/controller/workflow-meta.controller.ts +80 -80
  409. package/src/module/workflow/controller/workflow.controller.ts +67 -67
  410. package/src/module/workflow/entity/action-category.entity.ts +38 -38
  411. package/src/module/workflow/entity/action-data.entity.ts +55 -55
  412. package/src/module/workflow/entity/action-resources-mapping.entity.ts +29 -29
  413. package/src/module/workflow/entity/action-template-mapping.entity.ts +17 -17
  414. package/src/module/workflow/entity/action.entity.ts +50 -53
  415. package/src/module/workflow/entity/activity-log.entity.ts +43 -43
  416. package/src/module/workflow/entity/comm-template.entity.ts +43 -43
  417. package/src/module/workflow/entity/entity-modification.entity.ts +38 -38
  418. package/src/module/workflow/entity/form.entity.ts +25 -25
  419. package/src/module/workflow/entity/stage-action-mapping.entity.ts +17 -17
  420. package/src/module/workflow/entity/stage-group.entity.ts +23 -23
  421. package/src/module/workflow/entity/stage-movement-data.entity.ts +38 -38
  422. package/src/module/workflow/entity/stage.entity.ts +20 -20
  423. package/src/module/workflow/entity/task-data.entity.ts +88 -88
  424. package/src/module/workflow/entity/template-attach-mapper.entity.ts +30 -30
  425. package/src/module/workflow/entity/workflow-data.entity.ts +11 -11
  426. package/src/module/workflow/entity/workflow-level-mapping.entity.ts +18 -18
  427. package/src/module/workflow/entity/workflow.entity.ts +20 -20
  428. package/src/module/workflow/repository/action-category.repository.ts +79 -79
  429. package/src/module/workflow/repository/action-data.repository.ts +333 -334
  430. package/src/module/workflow/repository/action.repository.ts +323 -323
  431. package/src/module/workflow/repository/activity-log.repository.ts +148 -148
  432. package/src/module/workflow/repository/comm-template.repository.ts +149 -149
  433. package/src/module/workflow/repository/form-master.repository.ts +59 -59
  434. package/src/module/workflow/repository/stage-group.repository.ts +176 -176
  435. package/src/module/workflow/repository/stage-movement.repository.ts +244 -244
  436. package/src/module/workflow/repository/stage.repository.ts +172 -172
  437. package/src/module/workflow/repository/task.repository.ts +127 -134
  438. package/src/module/workflow/repository/workflow.repository.ts +42 -42
  439. package/src/module/workflow/service/action-category.service.ts +33 -33
  440. package/src/module/workflow/service/action-data.service.ts +62 -62
  441. package/src/module/workflow/service/action-resources-mapping.service.ts +10 -10
  442. package/src/module/workflow/service/action-template-mapping.service.ts +106 -106
  443. package/src/module/workflow/service/action.service.ts +279 -279
  444. package/src/module/workflow/service/activity-log.service.ts +107 -107
  445. package/src/module/workflow/service/comm-template.service.ts +180 -180
  446. package/src/module/workflow/service/entity-modification.service.ts +67 -67
  447. package/src/module/workflow/service/form-master.service.ts +35 -35
  448. package/src/module/workflow/service/populate-workflow.service.ts +303 -303
  449. package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
  450. package/src/module/workflow/service/stage-group.service.ts +319 -319
  451. package/src/module/workflow/service/stage.service.ts +199 -199
  452. package/src/module/workflow/service/task.service.ts +560 -575
  453. package/src/module/workflow/service/workflow-list-master.service.ts +60 -60
  454. package/src/module/workflow/service/workflow-meta.service.ts +640 -654
  455. package/src/module/workflow/service/workflow.service.ts +205 -205
  456. package/src/module/workflow/workflow.module.ts +176 -176
  457. package/src/module/workflow-automation/controller/workflow-automation.controller.ts +21 -43
  458. package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
  459. package/src/module/workflow-automation/entity/workflow-automation.entity.ts +35 -38
  460. package/src/module/workflow-automation/interface/action.decorator.ts +7 -7
  461. package/src/module/workflow-automation/interface/action.interface.ts +5 -5
  462. package/src/module/workflow-automation/service/action-registery.service.ts +35 -35
  463. package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +214 -214
  464. package/src/module/workflow-automation/service/workflow-automation.service.ts +347 -421
  465. package/src/module/workflow-automation/workflow-automation.module.ts +34 -34
  466. package/src/resources/dev.properties.yaml +31 -30
  467. package/src/resources/local.properties.yaml +27 -27
  468. package/src/resources/properties.module.ts +12 -12
  469. package/src/resources/properties.yaml.ts +11 -11
  470. package/src/resources/uat.properties.yaml +31 -31
  471. package/src/table.config.ts +126 -126
  472. package/src/utils/dto/excel-data.dto.ts +14 -14
  473. package/src/utils/dto/excelsheet-data.dto.ts +5 -5
  474. package/src/utils/service/base64util.service.ts +18 -18
  475. package/src/utils/service/clockIDGenUtil.service.ts +21 -21
  476. package/src/utils/service/codeGenerator.service.ts +22 -22
  477. package/src/utils/service/dateUtil.service.ts +17 -17
  478. package/src/utils/service/encryptUtil.service.ts +97 -97
  479. package/src/utils/service/excel-helper.service.ts +72 -72
  480. package/src/utils/service/excelUtil.service.ts +15 -15
  481. package/src/utils/service/file-util.service.ts +11 -11
  482. package/src/utils/service/json-util.service.ts +23 -23
  483. package/src/utils/service/loggingUtil.service.ts +34 -88
  484. package/src/utils/service/reflection-helper.service.ts +62 -62
  485. package/src/utils/service/wbsCodeGen.service.ts +8 -8
  486. package/src/utils/utils.module.ts +25 -27
  487. package/tsconfig.build.json +4 -4
  488. package/tsconfig.json +24 -24
@@ -1,148 +1,148 @@
1
- import { InjectRepository } from '@nestjs/typeorm';
2
- import { MediaDataService } from 'src/module/meta/service/media-data.service';
3
- import { ActivityLog } from '../entity/activity-log.entity';
4
- import { Repository } from 'typeorm';
5
- import * as moment from 'moment';
6
- import axios from 'axios';
7
- import { ConfigService } from '@nestjs/config';
8
-
9
- export const ACTIVITY_CATEGORIES = {
10
- ASSIGN: 'ASSIGN',
11
- INTERACTION: 'INTERACTION',
12
- FORM: 'FORM',
13
- STAGE: 'STAGE',
14
- ASSESSMENT: 'ASSESSMENT',
15
- MEETING: 'MEETING',
16
- PROCESS: 'PROCESS',
17
- STATUS: 'STATUS',
18
- TASK: 'TASK',
19
- LEAD: 'LEAD',
20
- STAGEGROUP: 'STAGE_GROUP',
21
- } as const;
22
-
23
- export type ActivityCategoryType = keyof typeof ACTIVITY_CATEGORIES;
24
-
25
- export class ActivityLogRepository {
26
- constructor(
27
- @InjectRepository(ActivityLog)
28
- private readonly activityLogRepository: Repository<ActivityLog>,
29
- private readonly mediaDataService: MediaDataService,
30
- private readonly configService: ConfigService,
31
- ) {}
32
-
33
- async getAllActivityLog(
34
- mapped_entity_type: string,
35
- mapped_entity_id: number | string,
36
- category: string | undefined,
37
- loggedInUser,
38
- ) {
39
- const { organization_id, id: loggedInUserId } = loggedInUser;
40
-
41
- const query = this.activityLogRepository
42
- .createQueryBuilder('log')
43
- .where('log.mapped_entity_type = :mapped_entity_type', {
44
- mapped_entity_type,
45
- })
46
- .andWhere('log.organization_id = :organization_id', { organization_id })
47
- .andWhere('log.mapped_entity_id = :mapped_entity_id', {
48
- mapped_entity_id,
49
- });
50
-
51
- if (category) {
52
- query.andWhere('log.category = :category', { category });
53
- }
54
-
55
- query.orderBy('log.created_date', 'DESC');
56
- const rows = await query.getRawAndEntities();
57
-
58
- if (rows?.entities) {
59
- let user: any = null;
60
- for (const param of rows?.entities as any) {
61
- try {
62
- const baseUrl = this.configService.get<string>('REDIRECT_BE_URL');
63
-
64
- // Prepare the query string
65
- const queryParams = new URLSearchParams({
66
- loggedInUser: JSON.stringify(loggedInUser),
67
- }).toString();
68
-
69
- // Make the GET request with query parameters
70
- const response = await axios.get(
71
- `${baseUrl}/users/profile-image-url/${param?.created_by}?entity_type=USR&${queryParams}`,
72
- {
73
- headers: {
74
- 'Content-Type': 'application/json',
75
- },
76
- },
77
- );
78
-
79
- user = response.data;
80
- param.user_name = user.name;
81
- param.profile_image = user.profile_image;
82
- } catch (error) {
83
- console.error('⚠️ Internal Entity API call failed:', error.message);
84
- }
85
- }
86
- }
87
-
88
- const result = await Promise.all(
89
- rows.entities.map(async (entity, i) => {
90
- const profileImageId = rows.raw[i].profile_image;
91
-
92
- let profile: any = null;
93
- // if (profileImageId) {
94
- // profile = await this.mediaDataService.getMediaDownloadUrl(
95
- // profileImageId,
96
- // loggedInUser,
97
- // );
98
- // }
99
-
100
- const formattedLabel = entity.category
101
- .toLowerCase() // stage_group
102
- .replace(/_/g, ' ') // stage group
103
- .replace(/\b\w/g, (char) => char.toUpperCase()); // Stage Group
104
-
105
- return {
106
- ...entity,
107
- category: formattedLabel,
108
- created_date: entity.created_date
109
- ? moment(entity.created_date).local().format('DD-MMM, hh:mm A')
110
- : null,
111
- };
112
- }),
113
- );
114
-
115
- return result;
116
- }
117
-
118
- async getAllActivityCategory(
119
- mapped_entity_id: number | string,
120
- mapped_entity_type: string,
121
- loggedInUser: any,
122
- ) {
123
- const { organization_id } = loggedInUser;
124
-
125
- const result = await this.activityLogRepository
126
- .createQueryBuilder('log')
127
- .select('DISTINCT UPPER(log.category)', 'category')
128
- .where('log.mapped_entity_type = :mapped_entity_type', {
129
- mapped_entity_type,
130
- })
131
- .andWhere('log.organization_id = :organization_id', { organization_id })
132
- .andWhere('log.mapped_entity_id = :mapped_entity_id', {
133
- mapped_entity_id,
134
- })
135
-
136
- .getRawMany();
137
- return result.map((row) => {
138
- const formattedLabel = row.category
139
- .toLowerCase() // stage_group
140
- .replace(/_/g, ' ') // stage group
141
- .replace(/\b\w/g, (char) => char.toUpperCase()); // Stage Group
142
- return {
143
- label: formattedLabel,
144
- value: row.category,
145
- };
146
- });
147
- }
148
- }
1
+ import { InjectRepository } from '@nestjs/typeorm';
2
+ import { MediaDataService } from 'src/module/meta/service/media-data.service';
3
+ import { ActivityLog } from '../entity/activity-log.entity';
4
+ import { Repository } from 'typeorm';
5
+ import * as moment from 'moment';
6
+ import axios from 'axios';
7
+ import { ConfigService } from '@nestjs/config';
8
+
9
+ export const ACTIVITY_CATEGORIES = {
10
+ ASSIGN: 'ASSIGN',
11
+ INTERACTION: 'INTERACTION',
12
+ FORM: 'FORM',
13
+ STAGE: 'STAGE',
14
+ ASSESSMENT: 'ASSESSMENT',
15
+ MEETING: 'MEETING',
16
+ PROCESS: 'PROCESS',
17
+ STATUS: 'STATUS',
18
+ TASK: 'TASK',
19
+ LEAD: 'LEAD',
20
+ STAGEGROUP: 'STAGE_GROUP',
21
+ } as const;
22
+
23
+ export type ActivityCategoryType = keyof typeof ACTIVITY_CATEGORIES;
24
+
25
+ export class ActivityLogRepository {
26
+ constructor(
27
+ @InjectRepository(ActivityLog)
28
+ private readonly activityLogRepository: Repository<ActivityLog>,
29
+ private readonly mediaDataService: MediaDataService,
30
+ private readonly configService: ConfigService,
31
+ ) {}
32
+
33
+ async getAllActivityLog(
34
+ mapped_entity_type: string,
35
+ mapped_entity_id: number | string,
36
+ category: string | undefined,
37
+ loggedInUser,
38
+ ) {
39
+ const { organization_id, id: loggedInUserId } = loggedInUser;
40
+
41
+ const query = this.activityLogRepository
42
+ .createQueryBuilder('log')
43
+ .where('log.mapped_entity_type = :mapped_entity_type', {
44
+ mapped_entity_type,
45
+ })
46
+ .andWhere('log.organization_id = :organization_id', { organization_id })
47
+ .andWhere('log.mapped_entity_id = :mapped_entity_id', {
48
+ mapped_entity_id,
49
+ });
50
+
51
+ if (category) {
52
+ query.andWhere('log.category = :category', { category });
53
+ }
54
+
55
+ query.orderBy('log.created_date', 'DESC');
56
+ const rows = await query.getRawAndEntities();
57
+
58
+ if (rows?.entities) {
59
+ let user: any = null;
60
+ for (const param of rows?.entities as any) {
61
+ try {
62
+ const baseUrl = this.configService.get<string>('REDIRECT_BE_URL');
63
+
64
+ // Prepare the query string
65
+ const queryParams = new URLSearchParams({
66
+ loggedInUser: JSON.stringify(loggedInUser),
67
+ }).toString();
68
+
69
+ // Make the GET request with query parameters
70
+ const response = await axios.get(
71
+ `${baseUrl}/users/profile-image-url/${param?.created_by}?entity_type=USR&${queryParams}`,
72
+ {
73
+ headers: {
74
+ 'Content-Type': 'application/json',
75
+ },
76
+ },
77
+ );
78
+
79
+ user = response.data;
80
+ param.user_name = user.name;
81
+ param.profile_image = user.profile_image;
82
+ } catch (error) {
83
+ console.error('⚠️ Internal Entity API call failed:', error.message);
84
+ }
85
+ }
86
+ }
87
+
88
+ const result = await Promise.all(
89
+ rows.entities.map(async (entity, i) => {
90
+ const profileImageId = rows.raw[i].profile_image;
91
+
92
+ let profile: any = null;
93
+ // if (profileImageId) {
94
+ // profile = await this.mediaDataService.getMediaDownloadUrl(
95
+ // profileImageId,
96
+ // loggedInUser,
97
+ // );
98
+ // }
99
+
100
+ const formattedLabel = entity.category
101
+ .toLowerCase() // stage_group
102
+ .replace(/_/g, ' ') // stage group
103
+ .replace(/\b\w/g, (char) => char.toUpperCase()); // Stage Group
104
+
105
+ return {
106
+ ...entity,
107
+ category: formattedLabel,
108
+ created_date: entity.created_date
109
+ ? moment(entity.created_date).local().format('DD-MMM, hh:mm A')
110
+ : null,
111
+ };
112
+ }),
113
+ );
114
+
115
+ return result;
116
+ }
117
+
118
+ async getAllActivityCategory(
119
+ mapped_entity_id: number | string,
120
+ mapped_entity_type: string,
121
+ loggedInUser: any,
122
+ ) {
123
+ const { organization_id } = loggedInUser;
124
+
125
+ const result = await this.activityLogRepository
126
+ .createQueryBuilder('log')
127
+ .select('DISTINCT UPPER(log.category)', 'category')
128
+ .where('log.mapped_entity_type = :mapped_entity_type', {
129
+ mapped_entity_type,
130
+ })
131
+ .andWhere('log.organization_id = :organization_id', { organization_id })
132
+ .andWhere('log.mapped_entity_id = :mapped_entity_id', {
133
+ mapped_entity_id,
134
+ })
135
+
136
+ .getRawMany();
137
+ return result.map((row) => {
138
+ const formattedLabel = row.category
139
+ .toLowerCase() // stage_group
140
+ .replace(/_/g, ' ') // stage group
141
+ .replace(/\b\w/g, (char) => char.toUpperCase()); // Stage Group
142
+ return {
143
+ label: formattedLabel,
144
+ value: row.category,
145
+ };
146
+ });
147
+ }
148
+ }
@@ -1,149 +1,149 @@
1
- import { Injectable, NotFoundException } from '@nestjs/common';
2
- import { InjectRepository } from '@nestjs/typeorm';
3
- import { DataSource, Repository } from 'typeorm';
4
- import { CommTemplate } from '../entity/comm-template.entity';
5
- import { TemplateAttach } from '../entity/template-attach-mapper.entity';
6
- import { MediaDataService } from 'src/module/meta/service/media-data.service';
7
-
8
- @Injectable()
9
- export class CommTemplateRepository {
10
- constructor(
11
- @InjectRepository(CommTemplate)
12
- private readonly commTemplateRepository: Repository<CommTemplate>,
13
- @InjectRepository(TemplateAttach)
14
- private readonly templateAttachEntity: Repository<TemplateAttach>,
15
- private readonly mediaDataService: MediaDataService,
16
- private readonly dataSource: DataSource,
17
- ) {}
18
-
19
- async getAllCommTemplate(
20
- entity_type: string,
21
- action_id?: number,
22
- loggedInUser?,
23
- ) {
24
- const { organization_id, level_id, level_type } = loggedInUser;
25
-
26
- let is_template: number | undefined;
27
-
28
- // 1️⃣ Only check action_id if provided
29
- if (action_id) {
30
- const [actionResult] = await this.dataSource.query(
31
- `SELECT is_template
32
- FROM frm_wf_action
33
- WHERE id = ? AND organization_id = ?
34
- LIMIT 1`,
35
- [action_id, organization_id],
36
- );
37
-
38
- if (!actionResult) {
39
- throw new Error('Invalid action_id');
40
- }
41
-
42
- is_template = actionResult.is_template;
43
-
44
- await this.dataSource.query(
45
- `UPDATE frm_wf_comm_template
46
- SET is_template = ?
47
- WHERE mapped_entity_type = ?
48
- AND organization_id = ? AND level_id = ? AND level_type=?`,
49
- [is_template, entity_type, organization_id, level_id, level_type],
50
- );
51
- }
52
-
53
- const whereCondition: any = {
54
- // mapped_entity_type: entity_type,
55
- organization_id,
56
- level_id,
57
- level_type,
58
- };
59
-
60
- if (typeof is_template !== 'undefined') {
61
- whereCondition.is_template = is_template;
62
- }
63
-
64
- return this.commTemplateRepository.find({
65
- select: ['name', 'code', 'mode', 'is_template'],
66
- where: whereCondition,
67
- });
68
- }
69
-
70
- async save(commTemplate: any): Promise<any> {
71
- // // delete existing mapper
72
- // for (const attachment of commTemplate || []) {
73
- // await this.templateAttachEntity.delete({
74
- // entity_type: attachment.entity_type,
75
- // template_id: attachment.template_id,
76
- // });
77
- // }
78
-
79
- return this.templateAttachEntity.save(commTemplate);
80
- }
81
-
82
- async delete(id: any): Promise<any> {
83
- // delete existing mapper
84
- return await this.templateAttachEntity.delete(id);
85
- }
86
-
87
- async getTemplateByCode(
88
- entity_type: string,
89
- id: number,
90
- loggedInUser,
91
- ): Promise<any | null> {
92
- const template = await this.commTemplateRepository.findOne({
93
- where: { entity_type, id },
94
- });
95
-
96
- if (!template) {
97
- throw new NotFoundException(`Template with id ${id} not found`);
98
- }
99
-
100
- if (template.format_type === 'markup') {
101
- const media = await this.mediaDataService.getMediaDownloadUrl(
102
- template.markup_id,
103
- loggedInUser,
104
- );
105
- template.markup_id = media as any;
106
- }
107
-
108
- if (template.format_type === 'richtext') {
109
- return template;
110
- }
111
-
112
- // Get attachments for this template
113
- const attachments = await this.templateAttachEntity.find({
114
- select: ['media_id'],
115
- where: {
116
- entity_type,
117
- template_id: template.id,
118
- },
119
- });
120
-
121
- // If there are attachments, return array of media JSONs
122
- let attachmentsMedia: any[] = [];
123
- if (attachments.length > 0) {
124
- attachmentsMedia = await Promise.all(
125
- attachments.map(async (att) => {
126
- // Fetch media details for each media_id
127
- const media = await this.mediaDataService.getMediaDownloadUrl(
128
- att.media_id,
129
- loggedInUser,
130
- );
131
- return media; // return full media info (e.g., { id, url, ... })
132
- }),
133
- );
134
- }
135
-
136
- // Return template with attachments array
137
- return {
138
- ...template,
139
- attachments: attachmentsMedia, // [] or array of media JSONs
140
- };
141
- }
142
-
143
- async findByCodeAndLevelIdAndLevelTypeAndAppCode(code: string, level_id: string,
144
- level_type: string, appcode: string) {
145
- return await this.commTemplateRepository.findOne({
146
- where: {code, level_id, level_type, appcode}
147
- });
148
- }
149
- }
1
+ import { Injectable, NotFoundException } from '@nestjs/common';
2
+ import { InjectRepository } from '@nestjs/typeorm';
3
+ import { DataSource, Repository } from 'typeorm';
4
+ import { CommTemplate } from '../entity/comm-template.entity';
5
+ import { TemplateAttach } from '../entity/template-attach-mapper.entity';
6
+ import { MediaDataService } from 'src/module/meta/service/media-data.service';
7
+
8
+ @Injectable()
9
+ export class CommTemplateRepository {
10
+ constructor(
11
+ @InjectRepository(CommTemplate)
12
+ private readonly commTemplateRepository: Repository<CommTemplate>,
13
+ @InjectRepository(TemplateAttach)
14
+ private readonly templateAttachEntity: Repository<TemplateAttach>,
15
+ private readonly mediaDataService: MediaDataService,
16
+ private readonly dataSource: DataSource,
17
+ ) {}
18
+
19
+ async getAllCommTemplate(
20
+ entity_type: string,
21
+ action_id?: number,
22
+ loggedInUser?,
23
+ ) {
24
+ const { organization_id, level_id, level_type } = loggedInUser;
25
+
26
+ let is_template: number | undefined;
27
+
28
+ // 1️⃣ Only check action_id if provided
29
+ if (action_id) {
30
+ const [actionResult] = await this.dataSource.query(
31
+ `SELECT is_template
32
+ FROM frm_wf_action
33
+ WHERE id = $1 AND organization_id = $2
34
+ LIMIT 1`,
35
+ [action_id, organization_id],
36
+ );
37
+
38
+ if (!actionResult) {
39
+ throw new Error('Invalid action_id');
40
+ }
41
+
42
+ is_template = actionResult.is_template;
43
+
44
+ await this.dataSource.query(
45
+ `UPDATE frm_wf_comm_template
46
+ SET is_template = $1
47
+ WHERE mapped_entity_type = $2
48
+ AND organization_id = $3 AND level_id = $4 AND level_type=$5`,
49
+ [is_template, entity_type, organization_id, level_id, level_type],
50
+ );
51
+ }
52
+
53
+ const whereCondition: any = {
54
+ // mapped_entity_type: entity_type,
55
+ organization_id,
56
+ level_id,
57
+ level_type,
58
+ };
59
+
60
+ if (typeof is_template !== 'undefined') {
61
+ whereCondition.is_template = is_template;
62
+ }
63
+
64
+ return this.commTemplateRepository.find({
65
+ select: ['name', 'code', 'mode', 'is_template'],
66
+ where: whereCondition,
67
+ });
68
+ }
69
+
70
+ async save(commTemplate: any): Promise<any> {
71
+ // // delete existing mapper
72
+ // for (const attachment of commTemplate || []) {
73
+ // await this.templateAttachEntity.delete({
74
+ // entity_type: attachment.entity_type,
75
+ // template_id: attachment.template_id,
76
+ // });
77
+ // }
78
+
79
+ return this.templateAttachEntity.save(commTemplate);
80
+ }
81
+
82
+ async delete(id: any): Promise<any> {
83
+ // delete existing mapper
84
+ return await this.templateAttachEntity.delete(id);
85
+ }
86
+
87
+ async getTemplateByCode(
88
+ entity_type: string,
89
+ id: number,
90
+ loggedInUser,
91
+ ): Promise<any | null> {
92
+ const template = await this.commTemplateRepository.findOne({
93
+ where: { entity_type, id },
94
+ });
95
+
96
+ if (!template) {
97
+ throw new NotFoundException(`Template with id ${id} not found`);
98
+ }
99
+
100
+ if (template.format_type === 'markup') {
101
+ const media = await this.mediaDataService.getMediaDownloadUrl(
102
+ template.markup_id,
103
+ loggedInUser,
104
+ );
105
+ template.markup_id = media as any;
106
+ }
107
+
108
+ if (template.format_type === 'richtext') {
109
+ return template;
110
+ }
111
+
112
+ // Get attachments for this template
113
+ const attachments = await this.templateAttachEntity.find({
114
+ select: ['media_id'],
115
+ where: {
116
+ entity_type,
117
+ template_id: template.id,
118
+ },
119
+ });
120
+
121
+ // If there are attachments, return array of media JSONs
122
+ let attachmentsMedia: any[] = [];
123
+ if (attachments.length > 0) {
124
+ attachmentsMedia = await Promise.all(
125
+ attachments.map(async (att) => {
126
+ // Fetch media details for each media_id
127
+ const media = await this.mediaDataService.getMediaDownloadUrl(
128
+ att.media_id,
129
+ loggedInUser,
130
+ );
131
+ return media; // return full media info (e.g., { id, url, ... })
132
+ }),
133
+ );
134
+ }
135
+
136
+ // Return template with attachments array
137
+ return {
138
+ ...template,
139
+ attachments: attachmentsMedia, // [] or array of media JSONs
140
+ };
141
+ }
142
+
143
+ async findByCodeAndLevelIdAndLevelTypeAndAppCode(code: string, level_id: string,
144
+ level_type: string, appcode: string) {
145
+ return await this.commTemplateRepository.findOne({
146
+ where: {code, level_id, level_type, appcode}
147
+ });
148
+ }
149
+ }