@solidstarters/solid-core 1.2.125 → 1.2.127

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 (617) hide show
  1. package/dist/cli.js.map +1 -1
  2. package/dist/commands/helper.js.map +1 -1
  3. package/dist/commands/refresh-model.command.js.map +1 -1
  4. package/dist/commands/refresh-module.command.js.map +1 -1
  5. package/dist/commands/remove-fields.command.js.map +1 -1
  6. package/dist/commands/seed.command.js.map +1 -1
  7. package/dist/config/app-builder.config.js.map +1 -1
  8. package/dist/config/cache.options.js.map +1 -1
  9. package/dist/config/common.config.js.map +1 -1
  10. package/dist/config/iam.config.js.map +1 -1
  11. package/dist/constants.js.map +1 -1
  12. package/dist/controllers/action-metadata.controller.js.map +1 -1
  13. package/dist/controllers/authentication.controller.js.map +1 -1
  14. package/dist/controllers/chatter-message-details.controller.js.map +1 -1
  15. package/dist/controllers/chatter-message.controller.js.map +1 -1
  16. package/dist/controllers/email-template.controller.js.map +1 -1
  17. package/dist/controllers/export-template.controller.js.map +1 -1
  18. package/dist/controllers/export-transaction.controller.js.map +1 -1
  19. package/dist/controllers/field-metadata.controller.js.map +1 -1
  20. package/dist/controllers/google-authentication.controller.js.map +1 -1
  21. package/dist/controllers/import-transaction-error-log.controller.js.map +1 -1
  22. package/dist/controllers/import-transaction.controller.js.map +1 -1
  23. package/dist/controllers/list-of-values.controller.js.map +1 -1
  24. package/dist/controllers/locale.controller.js.map +1 -1
  25. package/dist/controllers/media-storage-provider-metadata.controller.d.ts.map +1 -1
  26. package/dist/controllers/media-storage-provider-metadata.controller.js +3 -0
  27. package/dist/controllers/media-storage-provider-metadata.controller.js.map +1 -1
  28. package/dist/controllers/media.controller.js.map +1 -1
  29. package/dist/controllers/menu-item-metadata.controller.js.map +1 -1
  30. package/dist/controllers/model-metadata.controller.js.map +1 -1
  31. package/dist/controllers/module-metadata.controller.js.map +1 -1
  32. package/dist/controllers/mq-message-queue.controller.js.map +1 -1
  33. package/dist/controllers/mq-message.controller.js.map +1 -1
  34. package/dist/controllers/otp-authentication.controller.js.map +1 -1
  35. package/dist/controllers/permission-metadata.controller.js.map +1 -1
  36. package/dist/controllers/role-metadata.controller.js.map +1 -1
  37. package/dist/controllers/saved-filters.controller.js.map +1 -1
  38. package/dist/controllers/scheduled-job.controller.d.ts +43 -0
  39. package/dist/controllers/scheduled-job.controller.d.ts.map +1 -0
  40. package/dist/controllers/scheduled-job.controller.js +179 -0
  41. package/dist/controllers/scheduled-job.controller.js.map +1 -0
  42. package/dist/controllers/security-rule.controller.js.map +1 -1
  43. package/dist/controllers/service.controller.js.map +1 -1
  44. package/dist/controllers/setting.controller.js.map +1 -1
  45. package/dist/controllers/sms-template.controller.js.map +1 -1
  46. package/dist/controllers/test-queue.controller.d.ts +7 -0
  47. package/dist/controllers/test-queue.controller.d.ts.map +1 -0
  48. package/dist/controllers/{queues-test.controller.js → test-queue.controller.js} +12 -20
  49. package/dist/controllers/test-queue.controller.js.map +1 -0
  50. package/dist/controllers/test.controller.js.map +1 -1
  51. package/dist/controllers/user-activity-history.controller.js.map +1 -1
  52. package/dist/controllers/user-view-metadata.controller.js.map +1 -1
  53. package/dist/controllers/user.controller.js.map +1 -1
  54. package/dist/controllers/view-metadata.controller.js.map +1 -1
  55. package/dist/decorators/active-user.decorator.js.map +1 -1
  56. package/dist/decorators/auth.decorator.js.map +1 -1
  57. package/dist/decorators/computed-field-provider.decorator.js.map +1 -1
  58. package/dist/decorators/disallow-in-production.decorator.js.map +1 -1
  59. package/dist/decorators/is-not-in-enum.decorator.js.map +1 -1
  60. package/dist/decorators/protocol.decorator.js.map +1 -1
  61. package/dist/decorators/public.decorator.js.map +1 -1
  62. package/dist/decorators/roles.decorator.js.map +1 -1
  63. package/dist/decorators/scheduled-job-provider.decorator.d.ts +3 -0
  64. package/dist/decorators/scheduled-job-provider.decorator.d.ts.map +1 -0
  65. package/dist/decorators/scheduled-job-provider.decorator.js +11 -0
  66. package/dist/decorators/scheduled-job-provider.decorator.js.map +1 -0
  67. package/dist/decorators/selection-provider.decorator.js.map +1 -1
  68. package/dist/decorators/solid-database-module.decorator.js.map +1 -1
  69. package/dist/decorators/solid-request-context.decorator.js.map +1 -1
  70. package/dist/decorators/solid-service.decorator.js.map +1 -1
  71. package/dist/dtos/basic-filters.dto.js.map +1 -1
  72. package/dist/dtos/change-password.dto.js.map +1 -1
  73. package/dist/dtos/confirm-forgot-password.dto.js.map +1 -1
  74. package/dist/dtos/create-action-metadata.dto.js.map +1 -1
  75. package/dist/dtos/create-chatter-message-details.dto.js.map +1 -1
  76. package/dist/dtos/create-chatter-message.dto.js.map +1 -1
  77. package/dist/dtos/create-email-attachment.dto.js.map +1 -1
  78. package/dist/dtos/create-email-template.dto.js.map +1 -1
  79. package/dist/dtos/create-export-template.dto.js.map +1 -1
  80. package/dist/dtos/create-export-transaction.dto.js.map +1 -1
  81. package/dist/dtos/create-field-metadata.dto.js.map +1 -1
  82. package/dist/dtos/create-import-transaction-error-log.dto.js.map +1 -1
  83. package/dist/dtos/create-import-transaction.dto.js.map +1 -1
  84. package/dist/dtos/create-list-of-values.dto.js.map +1 -1
  85. package/dist/dtos/create-locale.dto.js.map +1 -1
  86. package/dist/dtos/create-media-storage-provider-metadata.dto.d.ts +1 -0
  87. package/dist/dtos/create-media-storage-provider-metadata.dto.d.ts.map +1 -1
  88. package/dist/dtos/create-media-storage-provider-metadata.dto.js +6 -1
  89. package/dist/dtos/create-media-storage-provider-metadata.dto.js.map +1 -1
  90. package/dist/dtos/create-media.dto.js.map +1 -1
  91. package/dist/dtos/create-menu-item-metadata.dto.js.map +1 -1
  92. package/dist/dtos/create-message.dto.js.map +1 -1
  93. package/dist/dtos/create-model-metadata.dto.js.map +1 -1
  94. package/dist/dtos/create-module-metadata.dto.js.map +1 -1
  95. package/dist/dtos/create-mq-message-queue.dto.js.map +1 -1
  96. package/dist/dtos/create-mq-message.dto.js.map +1 -1
  97. package/dist/dtos/create-permission-metadata.dto.js.map +1 -1
  98. package/dist/dtos/create-role-metadata.dto.js.map +1 -1
  99. package/dist/dtos/create-saved-filters.dto.js.map +1 -1
  100. package/dist/dtos/create-scheduled-job.dto.d.ts +15 -0
  101. package/dist/dtos/create-scheduled-job.dto.d.ts.map +1 -0
  102. package/dist/dtos/create-scheduled-job.dto.js +98 -0
  103. package/dist/dtos/create-scheduled-job.dto.js.map +1 -0
  104. package/dist/dtos/create-security-rule.dto.js.map +1 -1
  105. package/dist/dtos/create-setting.dto.js.map +1 -1
  106. package/dist/dtos/create-short-url.dto.js.map +1 -1
  107. package/dist/dtos/create-sms-template.dto.js.map +1 -1
  108. package/dist/dtos/create-user-activity-history.dto.js.map +1 -1
  109. package/dist/dtos/create-user-view-metadata.dto.js.map +1 -1
  110. package/dist/dtos/create-user.dto.js.map +1 -1
  111. package/dist/dtos/create-view-metadata.dto.js.map +1 -1
  112. package/dist/dtos/export.dto.js.map +1 -1
  113. package/dist/dtos/fetch-roles.dto.js.map +1 -1
  114. package/dist/dtos/import-instructions.dto.js.map +1 -1
  115. package/dist/dtos/initiate-forgot-password.dto.js.map +1 -1
  116. package/dist/dtos/mutate-role-permissions.dto.js.map +1 -1
  117. package/dist/dtos/mutate-user-roles-list.dto.js.map +1 -1
  118. package/dist/dtos/mutate-user-roles.dto.js.map +1 -1
  119. package/dist/dtos/oauth-user-dto.js.map +1 -1
  120. package/dist/dtos/otp-confirm-otp.dto.js.map +1 -1
  121. package/dist/dtos/otp-sign-in.dto.js.map +1 -1
  122. package/dist/dtos/otp-sign-up.dto.js.map +1 -1
  123. package/dist/dtos/pagination-query.dto.js.map +1 -1
  124. package/dist/dtos/post-chatter-message.dto.js.map +1 -1
  125. package/dist/dtos/query.dto.js.map +1 -1
  126. package/dist/dtos/refresh-token.dto.js.map +1 -1
  127. package/dist/dtos/register-private.dto.js.map +1 -1
  128. package/dist/dtos/security-rule-config.dto.js.map +1 -1
  129. package/dist/dtos/selection-dynamic-query.dto.js.map +1 -1
  130. package/dist/dtos/sign-in.dto.js.map +1 -1
  131. package/dist/dtos/sign-up.dto.js.map +1 -1
  132. package/dist/dtos/solid-request-context.dto.js.map +1 -1
  133. package/dist/dtos/sort-filter.dto.js.map +1 -1
  134. package/dist/dtos/update-action-metadata.dto.js.map +1 -1
  135. package/dist/dtos/update-chatter-message-details.dto.js.map +1 -1
  136. package/dist/dtos/update-chatter-message.dto.js.map +1 -1
  137. package/dist/dtos/update-email-attachment.dto.js.map +1 -1
  138. package/dist/dtos/update-email-template.dto.js.map +1 -1
  139. package/dist/dtos/update-export-template.dto.js.map +1 -1
  140. package/dist/dtos/update-export-transaction.dto.js.map +1 -1
  141. package/dist/dtos/update-field-metadata.dto.js.map +1 -1
  142. package/dist/dtos/update-import-transaction-error-log.dto.js.map +1 -1
  143. package/dist/dtos/update-import-transaction.dto.js.map +1 -1
  144. package/dist/dtos/update-list-of-values.dto.js.map +1 -1
  145. package/dist/dtos/update-locale.dto.js.map +1 -1
  146. package/dist/dtos/update-media-storage-provider.dto.js.map +1 -1
  147. package/dist/dtos/update-media.dto.js.map +1 -1
  148. package/dist/dtos/update-menu-item-metadata.dto.js.map +1 -1
  149. package/dist/dtos/update-message.dto.js.map +1 -1
  150. package/dist/dtos/update-model-metadata.dto.js.map +1 -1
  151. package/dist/dtos/update-module-metadata.dto.js.map +1 -1
  152. package/dist/dtos/update-mq-message-queue.dto.js.map +1 -1
  153. package/dist/dtos/update-mq-message.dto.js.map +1 -1
  154. package/dist/dtos/update-permission-metadata.dto.js.map +1 -1
  155. package/dist/dtos/update-role-metadata.dto.js.map +1 -1
  156. package/dist/dtos/update-saved-filters.dto.js.map +1 -1
  157. package/dist/dtos/update-scheduled-job.dto.d.ts +16 -0
  158. package/dist/dtos/update-scheduled-job.dto.d.ts.map +1 -0
  159. package/dist/dtos/update-scheduled-job.dto.js +103 -0
  160. package/dist/dtos/update-scheduled-job.dto.js.map +1 -0
  161. package/dist/dtos/update-security-rule.dto.js.map +1 -1
  162. package/dist/dtos/update-setting.dto.js.map +1 -1
  163. package/dist/dtos/update-settings.dto.js.map +1 -1
  164. package/dist/dtos/update-sms-template.dto.js.map +1 -1
  165. package/dist/dtos/update-user-activity-history.dto.js.map +1 -1
  166. package/dist/dtos/update-user-profile.dto.js.map +1 -1
  167. package/dist/dtos/update-user-view-metadata.dto.js.map +1 -1
  168. package/dist/dtos/update-user.dto.js.map +1 -1
  169. package/dist/dtos/update-view-metadata.dto.js.map +1 -1
  170. package/dist/dtos/upsert-user-view-metadata.dto.js.map +1 -1
  171. package/dist/entities/action-metadata.entity.js.map +1 -1
  172. package/dist/entities/chatter-message-details.entity.js.map +1 -1
  173. package/dist/entities/chatter-message.entity.js.map +1 -1
  174. package/dist/entities/common.entity.js.map +1 -1
  175. package/dist/entities/email-attachment.entity.js.map +1 -1
  176. package/dist/entities/email-template.entity.js.map +1 -1
  177. package/dist/entities/export-template.entity.js.map +1 -1
  178. package/dist/entities/export-transaction.entity.js.map +1 -1
  179. package/dist/entities/field-metadata.entity.js.map +1 -1
  180. package/dist/entities/import-transaction-error-log.entity.js.map +1 -1
  181. package/dist/entities/import-transaction.entity.js.map +1 -1
  182. package/dist/entities/list-of-values.entity.js.map +1 -1
  183. package/dist/entities/locale.entity.js.map +1 -1
  184. package/dist/entities/media-storage-provider-metadata.entity.d.ts +1 -0
  185. package/dist/entities/media-storage-provider-metadata.entity.d.ts.map +1 -1
  186. package/dist/entities/media-storage-provider-metadata.entity.js +5 -1
  187. package/dist/entities/media-storage-provider-metadata.entity.js.map +1 -1
  188. package/dist/entities/media.entity.js.map +1 -1
  189. package/dist/entities/menu-item-metadata.entity.js.map +1 -1
  190. package/dist/entities/model-metadata.entity.js.map +1 -1
  191. package/dist/entities/module-metadata.entity.js.map +1 -1
  192. package/dist/entities/mq-message-queue.entity.js.map +1 -1
  193. package/dist/entities/mq-message.entity.js.map +1 -1
  194. package/dist/entities/permission-metadata.entity.js.map +1 -1
  195. package/dist/entities/role-metadata.entity.js.map +1 -1
  196. package/dist/entities/saved-filters.entity.js.map +1 -1
  197. package/dist/entities/scheduled-job.entity.d.ts +16 -0
  198. package/dist/entities/scheduled-job.entity.d.ts.map +1 -0
  199. package/dist/entities/scheduled-job.entity.js +77 -0
  200. package/dist/entities/scheduled-job.entity.js.map +1 -0
  201. package/dist/entities/security-rule.entity.js.map +1 -1
  202. package/dist/entities/setting.entity.js.map +1 -1
  203. package/dist/entities/sms-template.entity.js.map +1 -1
  204. package/dist/entities/user-activity-history.entity.js.map +1 -1
  205. package/dist/entities/user-password-history.entity.js.map +1 -1
  206. package/dist/entities/user-view-metadata.entity.js.map +1 -1
  207. package/dist/entities/user.entity.js.map +1 -1
  208. package/dist/entities/view-metadata.entity.js.map +1 -1
  209. package/dist/enums/auth-type.enum.js.map +1 -1
  210. package/dist/filters/http-exception.filter.js.map +1 -1
  211. package/dist/guards/access-token.guard.js.map +1 -1
  212. package/dist/guards/authentication.guard.js.map +1 -1
  213. package/dist/guards/permissions.guard.js.map +1 -1
  214. package/dist/guards/roles.guard.js.map +1 -1
  215. package/dist/helpers/command.service.js.map +1 -1
  216. package/dist/helpers/field-crud-managers/BigIntFieldCrudManager.js.map +1 -1
  217. package/dist/helpers/field-crud-managers/BooleanFieldCrudManager.js.map +1 -1
  218. package/dist/helpers/field-crud-managers/ComputedFieldCrudManager.js.map +1 -1
  219. package/dist/helpers/field-crud-managers/DateFieldCrudManager.js.map +1 -1
  220. package/dist/helpers/field-crud-managers/DecimalFieldCrudManager.js.map +1 -1
  221. package/dist/helpers/field-crud-managers/EmailFieldCrudManager.js.map +1 -1
  222. package/dist/helpers/field-crud-managers/IntFieldCrudManager.js.map +1 -1
  223. package/dist/helpers/field-crud-managers/JsonFieldCrudManager.js.map +1 -1
  224. package/dist/helpers/field-crud-managers/LongTextFieldCrudManager.js.map +1 -1
  225. package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js.map +1 -1
  226. package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.js.map +1 -1
  227. package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js.map +1 -1
  228. package/dist/helpers/field-crud-managers/NoOpsFieldCrudManager.js.map +1 -1
  229. package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js.map +1 -1
  230. package/dist/helpers/field-crud-managers/PasswordFieldCrudManager.js.map +1 -1
  231. package/dist/helpers/field-crud-managers/RichTextFieldCrudManager.js.map +1 -1
  232. package/dist/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.js.map +1 -1
  233. package/dist/helpers/field-crud-managers/SelectionStaticFieldCrudManager.js.map +1 -1
  234. package/dist/helpers/field-crud-managers/ShortTextFieldCrudManager.js.map +1 -1
  235. package/dist/helpers/field-crud-managers/UUIDFieldCrudManager.js.map +1 -1
  236. package/dist/helpers/google-oauth.helper.js.map +1 -1
  237. package/dist/helpers/model-metadata-helper.service.js.map +1 -1
  238. package/dist/helpers/module-metadata-helper.service.js.map +1 -1
  239. package/dist/helpers/module.helper.js.map +1 -1
  240. package/dist/helpers/schematic.service.js.map +1 -1
  241. package/dist/helpers/solid-registry.d.ts +5 -0
  242. package/dist/helpers/solid-registry.d.ts.map +1 -1
  243. package/dist/helpers/solid-registry.js +16 -0
  244. package/dist/helpers/solid-registry.js.map +1 -1
  245. package/dist/index.d.ts +8 -0
  246. package/dist/index.d.ts.map +1 -1
  247. package/dist/index.js +8 -0
  248. package/dist/index.js.map +1 -1
  249. package/dist/interceptors/logging.interceptor.js.map +1 -1
  250. package/dist/interceptors/wrap-response.interceptor.js.map +1 -1
  251. package/dist/interfaces/active-user-data.interface.js.map +1 -1
  252. package/dist/interfaces/mq.js.map +1 -1
  253. package/dist/interfaces.js.map +1 -1
  254. package/dist/jobs/api-email-publisher.service.js.map +1 -1
  255. package/dist/jobs/api-email-queue-options.js.map +1 -1
  256. package/dist/jobs/api-email-subscriber.service.js.map +1 -1
  257. package/dist/jobs/database/api-email-publisher-database.service.d.ts +11 -0
  258. package/dist/jobs/database/api-email-publisher-database.service.d.ts.map +1 -0
  259. package/dist/jobs/database/api-email-publisher-database.service.js +39 -0
  260. package/dist/jobs/database/api-email-publisher-database.service.js.map +1 -0
  261. package/dist/jobs/database/api-email-queue-options-database.d.ts +8 -0
  262. package/dist/jobs/database/api-email-queue-options-database.d.ts.map +1 -0
  263. package/dist/jobs/database/api-email-queue-options-database.js +10 -0
  264. package/dist/jobs/database/api-email-queue-options-database.js.map +1 -0
  265. package/dist/jobs/database/api-email-subscriber-database.service.d.ts +15 -0
  266. package/dist/jobs/database/api-email-subscriber-database.service.d.ts.map +1 -0
  267. package/dist/jobs/database/api-email-subscriber-database.service.js +45 -0
  268. package/dist/jobs/database/api-email-subscriber-database.service.js.map +1 -0
  269. package/dist/jobs/database/computed-field-evaluation-publisher.service.js.map +1 -1
  270. package/dist/jobs/database/computed-field-evaluation-queue-options.js.map +1 -1
  271. package/dist/jobs/database/computed-field-evaluation-subscriber.service.js.map +1 -1
  272. package/dist/jobs/database/email-publisher-database.service.d.ts +11 -0
  273. package/dist/jobs/database/email-publisher-database.service.d.ts.map +1 -0
  274. package/dist/jobs/database/email-publisher-database.service.js +39 -0
  275. package/dist/jobs/database/email-publisher-database.service.js.map +1 -0
  276. package/dist/jobs/database/email-queue-options-database.d.ts +8 -0
  277. package/dist/jobs/database/email-queue-options-database.d.ts.map +1 -0
  278. package/dist/jobs/database/email-queue-options-database.js +10 -0
  279. package/dist/jobs/database/email-queue-options-database.js.map +1 -0
  280. package/dist/jobs/database/email-subscriber-database.service.d.ts +15 -0
  281. package/dist/jobs/database/email-subscriber-database.service.d.ts.map +1 -0
  282. package/dist/jobs/database/email-subscriber-database.service.js +45 -0
  283. package/dist/jobs/database/email-subscriber-database.service.js.map +1 -0
  284. package/dist/jobs/database/{generate-code-publisher.service.d.ts → generate-code-publisher-database.service.d.ts} +2 -2
  285. package/dist/jobs/database/generate-code-publisher-database.service.d.ts.map +1 -0
  286. package/dist/jobs/database/generate-code-publisher-database.service.js +39 -0
  287. package/dist/jobs/database/generate-code-publisher-database.service.js.map +1 -0
  288. package/dist/jobs/database/{test-queue-db-options.d.ts → generate-code-queue-options-database.d.ts} +1 -1
  289. package/dist/jobs/database/generate-code-queue-options-database.d.ts.map +1 -0
  290. package/dist/jobs/database/{generate-code-queue-options.js → generate-code-queue-options-database.js} +1 -1
  291. package/dist/jobs/database/generate-code-queue-options-database.js.map +1 -0
  292. package/dist/jobs/database/{generate-code-subscriber.service.d.ts → generate-code-subscriber-database.service.d.ts} +2 -2
  293. package/dist/jobs/database/generate-code-subscriber-database.service.d.ts.map +1 -0
  294. package/dist/jobs/database/{generate-code-subscriber.service.js → generate-code-subscriber-database.service.js} +10 -10
  295. package/dist/jobs/database/generate-code-subscriber-database.service.js.map +1 -0
  296. package/dist/jobs/database/otp-publisher-database.service.d.ts +11 -0
  297. package/dist/jobs/database/otp-publisher-database.service.d.ts.map +1 -0
  298. package/dist/jobs/database/{generate-code-publisher.service.js → otp-publisher-database.service.js} +8 -8
  299. package/dist/jobs/database/otp-publisher-database.service.js.map +1 -0
  300. package/dist/jobs/database/otp-queue-options-database.d.ts +8 -0
  301. package/dist/jobs/database/otp-queue-options-database.d.ts.map +1 -0
  302. package/dist/jobs/database/otp-queue-options-database.js +10 -0
  303. package/dist/jobs/database/otp-queue-options-database.js.map +1 -0
  304. package/dist/jobs/database/otp-subscriber-database.service.d.ts +15 -0
  305. package/dist/jobs/database/otp-subscriber-database.service.d.ts.map +1 -0
  306. package/dist/jobs/database/otp-subscriber-database.service.js +45 -0
  307. package/dist/jobs/database/otp-subscriber-database.service.js.map +1 -0
  308. package/dist/jobs/database/sms-publisher-database.service.d.ts +11 -0
  309. package/dist/jobs/database/sms-publisher-database.service.d.ts.map +1 -0
  310. package/dist/jobs/database/{queue-test-db-publisher.service.js → sms-publisher-database.service.js} +8 -8
  311. package/dist/jobs/database/sms-publisher-database.service.js.map +1 -0
  312. package/dist/jobs/database/sms-queue-database-options.d.ts +8 -0
  313. package/dist/jobs/database/sms-queue-database-options.d.ts.map +1 -0
  314. package/dist/jobs/database/sms-queue-database-options.js +10 -0
  315. package/dist/jobs/database/sms-queue-database-options.js.map +1 -0
  316. package/dist/jobs/database/sms-subscriber-database.service.d.ts +15 -0
  317. package/dist/jobs/database/sms-subscriber-database.service.d.ts.map +1 -0
  318. package/dist/jobs/database/sms-subscriber-database.service.js +45 -0
  319. package/dist/jobs/database/sms-subscriber-database.service.js.map +1 -0
  320. package/dist/jobs/database/{generate-code-queue-options.d.ts → test-queue-options-database.d.ts} +1 -1
  321. package/dist/jobs/database/test-queue-options-database.d.ts.map +1 -0
  322. package/dist/jobs/database/{test-queue-db-options.js → test-queue-options-database.js} +1 -1
  323. package/dist/jobs/database/test-queue-options-database.js.map +1 -0
  324. package/dist/jobs/database/{queue-test-db-publisher.service.d.ts → test-queue-publisher-database.service.d.ts} +2 -2
  325. package/dist/jobs/database/test-queue-publisher-database.service.d.ts.map +1 -0
  326. package/dist/jobs/database/test-queue-publisher-database.service.js +39 -0
  327. package/dist/jobs/database/test-queue-publisher-database.service.js.map +1 -0
  328. package/dist/jobs/database/{queue-test-db-subscriber.service.d.ts → test-queue-subscriber-database.service.d.ts} +2 -2
  329. package/dist/jobs/database/test-queue-subscriber-database.service.d.ts.map +1 -0
  330. package/dist/jobs/database/{queue-test-db-subscriber.service.js → test-queue-subscriber-database.service.js} +10 -10
  331. package/dist/jobs/database/test-queue-subscriber-database.service.js.map +1 -0
  332. package/dist/jobs/database/whatsapp-publisher-database.service.d.ts +11 -0
  333. package/dist/jobs/database/whatsapp-publisher-database.service.d.ts.map +1 -0
  334. package/dist/jobs/database/whatsapp-publisher-database.service.js +39 -0
  335. package/dist/jobs/database/whatsapp-publisher-database.service.js.map +1 -0
  336. package/dist/jobs/database/whatsapp-queue-options-database.d.ts +8 -0
  337. package/dist/jobs/database/whatsapp-queue-options-database.d.ts.map +1 -0
  338. package/dist/jobs/database/whatsapp-queue-options-database.js +10 -0
  339. package/dist/jobs/database/whatsapp-queue-options-database.js.map +1 -0
  340. package/dist/jobs/database/whatsapp-subscriber-database.service.d.ts +15 -0
  341. package/dist/jobs/database/whatsapp-subscriber-database.service.d.ts.map +1 -0
  342. package/dist/jobs/database/whatsapp-subscriber-database.service.js +45 -0
  343. package/dist/jobs/database/whatsapp-subscriber-database.service.js.map +1 -0
  344. package/dist/jobs/email-publisher.service.js.map +1 -1
  345. package/dist/jobs/email-queue-options.js.map +1 -1
  346. package/dist/jobs/email-subscriber.service.js.map +1 -1
  347. package/dist/jobs/otp-publisher.service.js.map +1 -1
  348. package/dist/jobs/otp-queue-options.js.map +1 -1
  349. package/dist/jobs/otp-subscriber.service.js.map +1 -1
  350. package/dist/jobs/sms-publisher.service.js.map +1 -1
  351. package/dist/jobs/sms-queue-options.js.map +1 -1
  352. package/dist/jobs/sms-subscriber.service.js.map +1 -1
  353. package/dist/jobs/test-queue-options.d.ts.map +1 -1
  354. package/dist/jobs/test-queue-options.js.map +1 -1
  355. package/dist/jobs/{queue-test-publisher.service.d.ts → test-queue-publisher.service.d.ts} +1 -1
  356. package/dist/jobs/{queue-test-publisher.service.d.ts.map → test-queue-publisher.service.d.ts.map} +1 -1
  357. package/dist/jobs/{queue-test-publisher.service.js → test-queue-publisher.service.js} +1 -1
  358. package/dist/jobs/test-queue-publisher.service.js.map +1 -0
  359. package/dist/jobs/{queue-test-subscriber.service.d.ts → test-queue-subscriber.service.d.ts} +1 -1
  360. package/dist/jobs/{queue-test-subscriber.service.d.ts.map → test-queue-subscriber.service.d.ts.map} +1 -1
  361. package/dist/jobs/{queue-test-subscriber.service.js → test-queue-subscriber.service.js} +1 -1
  362. package/dist/jobs/test-queue-subscriber.service.js.map +1 -0
  363. package/dist/jobs/whatsapp-publisher.service.js.map +1 -1
  364. package/dist/jobs/whatsapp-queue-options.js.map +1 -1
  365. package/dist/jobs/whatsapp-subscriber.service.js.map +1 -1
  366. package/dist/listeners/user-registration.listener.js.map +1 -1
  367. package/dist/passport-strategies/google-oauth.strategy.js.map +1 -1
  368. package/dist/passport-strategies/local.strategy.js.map +1 -1
  369. package/dist/providers/list-of-values-selection-providers.service.js.map +1 -1
  370. package/dist/repository/field-metadata.repository.js.map +1 -1
  371. package/dist/repository/field.repository.js.map +1 -1
  372. package/dist/repository/media.repository.js.map +1 -1
  373. package/dist/repository/security-rule.repository.js.map +1 -1
  374. package/dist/repository/solid-base.repository.js.map +1 -1
  375. package/dist/seeders/email-template-seeder.service.js.map +1 -1
  376. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  377. package/dist/seeders/module-metadata-seeder.service.js +20 -2
  378. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  379. package/dist/seeders/permission-metadata-seeder.service.js.map +1 -1
  380. package/dist/seeders/seed-data/solid-core-metadata.json +545 -0
  381. package/dist/seeders/sms-template-seeder.service.js.map +1 -1
  382. package/dist/seeders/system-fields-seeder.service.js.map +1 -1
  383. package/dist/seeders/user-seeder.service.js.map +1 -1
  384. package/dist/services/access-token-storage.service.js.map +1 -1
  385. package/dist/services/action-metadata.service.js +1 -1
  386. package/dist/services/action-metadata.service.js.map +1 -1
  387. package/dist/services/authentication.service.js.map +1 -1
  388. package/dist/services/bcrypt.service.js.map +1 -1
  389. package/dist/services/chatter-message-details.service.js.map +1 -1
  390. package/dist/services/chatter-message.service.js.map +1 -1
  391. package/dist/services/computed-fields/concat-computed-field-provider.service.js.map +1 -1
  392. package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.js.map +1 -1
  393. package/dist/services/computed-fields/uuid-external-id-computed-field-provider.service.js.map +1 -1
  394. package/dist/services/crud-helper.service.js.map +1 -1
  395. package/dist/services/crud.service.d.ts.map +1 -1
  396. package/dist/services/crud.service.js.map +1 -1
  397. package/dist/services/csv.service.js.map +1 -1
  398. package/dist/services/email-template.service.js.map +1 -1
  399. package/dist/services/excel.service.js.map +1 -1
  400. package/dist/services/export-template.service.js.map +1 -1
  401. package/dist/services/export-transaction.service.js.map +1 -1
  402. package/dist/services/field-metadata.service.js.map +1 -1
  403. package/dist/services/file.service.d.ts +1 -0
  404. package/dist/services/file.service.d.ts.map +1 -1
  405. package/dist/services/file.service.js +8 -0
  406. package/dist/services/file.service.js.map +1 -1
  407. package/dist/services/hashing.service.js.map +1 -1
  408. package/dist/services/import-transaction-error-log.service.js.map +1 -1
  409. package/dist/services/import-transaction.service.js.map +1 -1
  410. package/dist/services/list-of-values.service.js.map +1 -1
  411. package/dist/services/locale.service.js.map +1 -1
  412. package/dist/services/mail/ElasticEmailService.d.ts +3 -3
  413. package/dist/services/mail/ElasticEmailService.d.ts.map +1 -1
  414. package/dist/services/mail/ElasticEmailService.js +5 -5
  415. package/dist/services/mail/ElasticEmailService.js.map +1 -1
  416. package/dist/services/mail/SMTPEmailService.d.ts +3 -3
  417. package/dist/services/mail/SMTPEmailService.d.ts.map +1 -1
  418. package/dist/services/mail/SMTPEmailService.js +5 -5
  419. package/dist/services/mail/SMTPEmailService.js.map +1 -1
  420. package/dist/services/media-storage-provider-metadata-seeder.service.js.map +1 -1
  421. package/dist/services/media-storage-provider-metadata.service.js.map +1 -1
  422. package/dist/services/media.service.d.ts.map +1 -1
  423. package/dist/services/media.service.js.map +1 -1
  424. package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts +4 -2
  425. package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
  426. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +23 -7
  427. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
  428. package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
  429. package/dist/services/mediaStorageProviders/index.js.map +1 -1
  430. package/dist/services/menu-item-metadata.service.js +1 -1
  431. package/dist/services/menu-item-metadata.service.js.map +1 -1
  432. package/dist/services/model-metadata.service.d.ts +1 -3
  433. package/dist/services/model-metadata.service.d.ts.map +1 -1
  434. package/dist/services/model-metadata.service.js +13 -15
  435. package/dist/services/model-metadata.service.js.map +1 -1
  436. package/dist/services/module-metadata.service.js.map +1 -1
  437. package/dist/services/mq-message-queue.service.js +1 -1
  438. package/dist/services/mq-message-queue.service.js.map +1 -1
  439. package/dist/services/mq-message.service.js +1 -1
  440. package/dist/services/mq-message.service.js.map +1 -1
  441. package/dist/services/pdf.service.js.map +1 -1
  442. package/dist/services/permission-metadata.service.js.map +1 -1
  443. package/dist/services/queues/database-publisher.service.js.map +1 -1
  444. package/dist/services/queues/database-subscriber.service.d.ts.map +1 -1
  445. package/dist/services/queues/database-subscriber.service.js +1 -1
  446. package/dist/services/queues/database-subscriber.service.js.map +1 -1
  447. package/dist/services/queues/publisher-factory.service.d.ts +9 -0
  448. package/dist/services/queues/publisher-factory.service.d.ts.map +1 -0
  449. package/dist/services/queues/publisher-factory.service.js +45 -0
  450. package/dist/services/queues/publisher-factory.service.js.map +1 -0
  451. package/dist/services/queues/rabbitmq-publisher.service.js.map +1 -1
  452. package/dist/services/queues/rabbitmq-subscriber.service.js +1 -1
  453. package/dist/services/queues/rabbitmq-subscriber.service.js.map +1 -1
  454. package/dist/services/queues/redis-publisher.service.js.map +1 -1
  455. package/dist/services/queues/redis-subscriber.service.js.map +1 -1
  456. package/dist/services/refresh-token-ids-storage.service.js.map +1 -1
  457. package/dist/services/request-context.service.js.map +1 -1
  458. package/dist/services/role-metadata.service.js.map +1 -1
  459. package/dist/services/saved-filters.service.js.map +1 -1
  460. package/dist/services/scheduled-job.service.d.ts +23 -0
  461. package/dist/services/scheduled-job.service.d.ts.map +1 -0
  462. package/dist/services/scheduled-job.service.js +59 -0
  463. package/dist/services/scheduled-job.service.js.map +1 -0
  464. package/dist/services/scheduled-jobs/scheduled-job.interface.d.ts +5 -0
  465. package/dist/services/scheduled-jobs/scheduled-job.interface.d.ts.map +1 -0
  466. package/dist/services/scheduled-jobs/scheduled-job.interface.js +3 -0
  467. package/dist/services/scheduled-jobs/scheduled-job.interface.js.map +1 -0
  468. package/dist/services/scheduled-jobs/scheduler.interface.d.ts +4 -0
  469. package/dist/services/scheduled-jobs/scheduler.interface.d.ts.map +1 -0
  470. package/dist/services/scheduled-jobs/scheduler.interface.js +3 -0
  471. package/dist/services/scheduled-jobs/scheduler.interface.js.map +1 -0
  472. package/dist/services/scheduled-jobs/scheduler.service.d.ts +14 -0
  473. package/dist/services/scheduled-jobs/scheduler.service.d.ts.map +1 -0
  474. package/dist/services/scheduled-jobs/scheduler.service.js +124 -0
  475. package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -0
  476. package/dist/services/security-rule.service.js.map +1 -1
  477. package/dist/services/selection-providers/list-of-models-selection-provider.service.js.map +1 -1
  478. package/dist/services/selection-providers/list-of-scheduled-jobs-selection-provider.service.d.ts +11 -0
  479. package/dist/services/selection-providers/list-of-scheduled-jobs-selection-provider.service.d.ts.map +1 -0
  480. package/dist/services/selection-providers/list-of-scheduled-jobs-selection-provider.service.js +46 -0
  481. package/dist/services/selection-providers/list-of-scheduled-jobs-selection-provider.service.js.map +1 -0
  482. package/dist/services/selection-providers/locale-list-selection-provider.service.js.map +1 -1
  483. package/dist/services/setting.service.js.map +1 -1
  484. package/dist/services/short-url/tiny-url.service.js.map +1 -1
  485. package/dist/services/sms/Msg91BaseSMSService.d.ts +4 -3
  486. package/dist/services/sms/Msg91BaseSMSService.d.ts.map +1 -1
  487. package/dist/services/sms/Msg91BaseSMSService.js +3 -2
  488. package/dist/services/sms/Msg91BaseSMSService.js.map +1 -1
  489. package/dist/services/sms/Msg91OTPService.d.ts +2 -2
  490. package/dist/services/sms/Msg91OTPService.d.ts.map +1 -1
  491. package/dist/services/sms/Msg91OTPService.js +4 -4
  492. package/dist/services/sms/Msg91OTPService.js.map +1 -1
  493. package/dist/services/sms/Msg91SMSService.d.ts +2 -2
  494. package/dist/services/sms/Msg91SMSService.d.ts.map +1 -1
  495. package/dist/services/sms/Msg91SMSService.js +4 -4
  496. package/dist/services/sms/Msg91SMSService.js.map +1 -1
  497. package/dist/services/sms-template.service.js.map +1 -1
  498. package/dist/services/solid-introspect.service.d.ts +1 -0
  499. package/dist/services/solid-introspect.service.d.ts.map +1 -1
  500. package/dist/services/solid-introspect.service.js +14 -0
  501. package/dist/services/solid-introspect.service.js.map +1 -1
  502. package/dist/services/user-activity-history.service.js.map +1 -1
  503. package/dist/services/user-view-metadata.service.js.map +1 -1
  504. package/dist/services/user.service.js.map +1 -1
  505. package/dist/services/view-metadata.service.d.ts.map +1 -1
  506. package/dist/services/view-metadata.service.js +7 -8
  507. package/dist/services/view-metadata.service.js.map +1 -1
  508. package/dist/services/whatsapp/Msg91WhatsappService.d.ts +2 -2
  509. package/dist/services/whatsapp/Msg91WhatsappService.d.ts.map +1 -1
  510. package/dist/services/whatsapp/Msg91WhatsappService.js +4 -4
  511. package/dist/services/whatsapp/Msg91WhatsappService.js.map +1 -1
  512. package/dist/solid-core-cli-db.module.js.map +1 -1
  513. package/dist/solid-core-cli.module.js.map +1 -1
  514. package/dist/solid-core.module.d.ts.map +1 -1
  515. package/dist/solid-core.module.js +48 -15
  516. package/dist/solid-core.module.js.map +1 -1
  517. package/dist/subscribers/audit.subscriber.js.map +1 -1
  518. package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
  519. package/dist/subscribers/created-by-updated-by.subscriber.js.map +1 -1
  520. package/dist/subscribers/field-metadata.subscriber.js.map +1 -1
  521. package/dist/subscribers/model-metadata.subscriber.js.map +1 -1
  522. package/dist/subscribers/security-rule.subscriber.js.map +1 -1
  523. package/dist/subscribers/soft-delete-aware-event.subscriber.js.map +1 -1
  524. package/dist/subscribers/view-metadata.subscriber.js.map +1 -1
  525. package/dist/transformers/array-transformer.js.map +1 -1
  526. package/dist/transformers/boolean-transformer.js.map +1 -1
  527. package/dist/transformers/datetime-transformer.js.map +1 -1
  528. package/dist/transformers/integer-transformer.js.map +1 -1
  529. package/dist/tsconfig.tsbuildinfo +1 -1
  530. package/dist/validators/is-parsable-int.js.map +1 -1
  531. package/dist/winston.logger.js.map +1 -1
  532. package/package.json +3 -1
  533. package/src/controllers/media-storage-provider-metadata.controller.ts +4 -1
  534. package/src/controllers/scheduled-job.controller.ts +93 -0
  535. package/src/controllers/{queues-test.controller.ts → test-queue.controller.ts} +12 -11
  536. package/src/decorators/scheduled-job-provider.decorator.ts +7 -0
  537. package/src/dtos/create-media-storage-provider-metadata.dto.ts +12 -7
  538. package/src/dtos/create-scheduled-job.dto.ts +65 -0
  539. package/src/dtos/update-scheduled-job.dto.ts +72 -0
  540. package/src/entities/media-storage-provider-metadata.entity.ts +5 -1
  541. package/src/entities/scheduled-job.entity.ts +30 -0
  542. package/src/helpers/solid-registry.ts +21 -1
  543. package/src/index.ts +8 -0
  544. package/src/jobs/database/api-email-publisher-database.service.ts +24 -0
  545. package/src/jobs/database/api-email-queue-options-database.ts +9 -0
  546. package/src/jobs/database/api-email-subscriber-database.service.ts +30 -0
  547. package/src/jobs/database/email-publisher-database.service.ts +23 -0
  548. package/src/jobs/database/email-queue-options-database.ts +10 -0
  549. package/src/jobs/database/email-subscriber-database.service.ts +30 -0
  550. package/src/jobs/database/{generate-code-publisher.service.ts → generate-code-publisher-database.service.ts} +2 -2
  551. package/src/jobs/database/{generate-code-subscriber.service.ts → generate-code-subscriber-database.service.ts} +3 -3
  552. package/src/jobs/database/otp-publisher-database.service.ts +23 -0
  553. package/src/jobs/database/otp-queue-options-database.ts +8 -0
  554. package/src/jobs/database/otp-subscriber-database.service.ts +30 -0
  555. package/src/jobs/database/sms-publisher-database.service.ts +23 -0
  556. package/src/jobs/database/sms-queue-database-options.ts +8 -0
  557. package/src/jobs/database/sms-subscriber-database.service.ts +30 -0
  558. package/src/jobs/database/test-queue-options-database.ts +9 -0
  559. package/src/jobs/database/{queue-test-db-publisher.service.ts → test-queue-publisher-database.service.ts} +2 -2
  560. package/src/jobs/database/{queue-test-db-subscriber.service.ts → test-queue-subscriber-database.service.ts} +3 -3
  561. package/src/jobs/database/whatsapp-publisher-database.service.ts +23 -0
  562. package/src/jobs/database/whatsapp-queue-options-database.ts +9 -0
  563. package/src/jobs/database/whatsapp-subscriber-database.service.ts +31 -0
  564. package/src/jobs/test-queue-options.ts +0 -1
  565. package/src/seeders/module-metadata-seeder.service.ts +30 -3
  566. package/src/seeders/seed-data/solid-core-metadata.json +545 -0
  567. package/src/services/action-metadata.service.ts +1 -1
  568. package/src/services/crud.service.ts +6 -5
  569. package/src/services/file.service.ts +13 -6
  570. package/src/services/mail/ElasticEmailService.ts +6 -4
  571. package/src/services/mail/SMTPEmailService.ts +11 -5
  572. package/src/services/media.service.ts +9 -10
  573. package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +30 -9
  574. package/src/services/mediaStorageProviders/file-storage-provider.ts +5 -5
  575. package/src/services/mediaStorageProviders/index.ts +3 -3
  576. package/src/services/menu-item-metadata.service.ts +2 -2
  577. package/src/services/model-metadata.service.ts +14 -13
  578. package/src/services/mq-message-queue.service.ts +1 -1
  579. package/src/services/mq-message.service.ts +1 -1
  580. package/src/services/queues/database-subscriber.service.ts +1 -2
  581. package/src/services/queues/publisher-factory.service.ts +41 -0
  582. package/src/services/queues/rabbitmq-subscriber.service.ts +1 -1
  583. package/src/services/scheduled-job.service.ts +34 -0
  584. package/src/services/scheduled-jobs/scheduled-job.interface.ts +5 -0
  585. package/src/services/scheduled-jobs/scheduler.interface.ts +3 -0
  586. package/src/services/scheduled-jobs/scheduler.service.ts +165 -0
  587. package/src/services/selection-providers/list-of-scheduled-jobs-selection-provider.service.ts +40 -0
  588. package/src/services/sms/Msg91BaseSMSService.ts +5 -4
  589. package/src/services/sms/Msg91OTPService.ts +7 -7
  590. package/src/services/sms/Msg91SMSService.ts +5 -4
  591. package/src/services/solid-introspect.service.ts +23 -0
  592. package/src/services/view-metadata.service.ts +48 -50
  593. package/src/services/whatsapp/Msg91WhatsappService.ts +4 -3
  594. package/src/solid-core.module.ts +46 -13
  595. package/tsconfig.json +1 -0
  596. package/dist/controllers/queues-test.controller.d.ts +0 -9
  597. package/dist/controllers/queues-test.controller.d.ts.map +0 -1
  598. package/dist/controllers/queues-test.controller.js.map +0 -1
  599. package/dist/jobs/database/generate-code-publisher.service.d.ts.map +0 -1
  600. package/dist/jobs/database/generate-code-publisher.service.js.map +0 -1
  601. package/dist/jobs/database/generate-code-queue-options.d.ts.map +0 -1
  602. package/dist/jobs/database/generate-code-queue-options.js.map +0 -1
  603. package/dist/jobs/database/generate-code-subscriber.service.d.ts.map +0 -1
  604. package/dist/jobs/database/generate-code-subscriber.service.js.map +0 -1
  605. package/dist/jobs/database/queue-test-db-publisher.service.d.ts.map +0 -1
  606. package/dist/jobs/database/queue-test-db-publisher.service.js.map +0 -1
  607. package/dist/jobs/database/queue-test-db-subscriber.service.d.ts.map +0 -1
  608. package/dist/jobs/database/queue-test-db-subscriber.service.js.map +0 -1
  609. package/dist/jobs/database/test-queue-db-options.d.ts.map +0 -1
  610. package/dist/jobs/database/test-queue-db-options.js.map +0 -1
  611. package/dist/jobs/queue-test-publisher.service.js.map +0 -1
  612. package/dist/jobs/queue-test-subscriber.service.js.map +0 -1
  613. package/src/jobs/database/test-queue-db-options.ts +0 -13
  614. package/src/services/user.service.ts.bkp +0 -311
  615. /package/src/jobs/database/{generate-code-queue-options.ts → generate-code-queue-options-database.ts} +0 -0
  616. /package/src/jobs/{queue-test-publisher.service.ts → test-queue-publisher.service.ts} +0 -0
  617. /package/src/jobs/{queue-test-subscriber.service.ts → test-queue-subscriber.service.ts} +0 -0
@@ -1,14 +1,14 @@
1
1
  import { Inject, Injectable, Logger } from '@nestjs/common';
2
2
  import { ConfigType } from '@nestjs/config';
3
- import Handlebars, { template } from "handlebars";
3
+ import Handlebars from "handlebars";
4
4
  import commonConfig from 'src/config/common.config';
5
5
  import { EmailAttachment } from 'src/entities/email-attachment.entity';
6
- import { ApiEmailQueuePublisher } from 'src/jobs/api-email-publisher.service';
7
6
  import { QueueMessage } from 'src/interfaces/mq';
8
7
  import { EmailTemplateService } from '../email-template.service';
9
8
  import { PdfService } from '../pdf.service';
10
9
  import { FileService } from '../file.service';
11
10
  import { IMail, MailAttachment, MailAttachmentWrapper } from "../../interfaces";
11
+ import { PublisherFactory } from '../queues/publisher-factory.service';
12
12
 
13
13
  const ElasticEmail = require('@elasticemail/elasticemail-client');
14
14
 
@@ -20,7 +20,8 @@ export class ElasticEmailService implements IMail {
20
20
  constructor(
21
21
  @Inject(commonConfig.KEY)
22
22
  private readonly commonConfiguration: ConfigType<typeof commonConfig>,
23
- private readonly emailPublisher: ApiEmailQueuePublisher,
23
+ // private readonly emailPublisher: ApiEmailQueuePublisher,
24
+ private readonly publisherFactory: PublisherFactory<any>,
24
25
  private readonly emailTemplateService: EmailTemplateService,
25
26
  private readonly pdfService: PdfService,
26
27
  private readonly fileService: FileService,
@@ -88,7 +89,8 @@ export class ElasticEmailService implements IMail {
88
89
  async sendEmailAsynchronously(message: QueueMessage<any>) {
89
90
  const { to, subject, body } = message.payload;
90
91
  // this.notificationPublisherService.publish(message);
91
- this.emailPublisher.publish(message);
92
+ // this.emailPublisher.publish(message);
93
+ this.publisherFactory.publish(message, 'ApiEmailQueuePublisher');
92
94
  this.logger.debug(`Queueing email to ${to} with subject ${subject} and body ${body}`);
93
95
  }
94
96
 
@@ -1,11 +1,11 @@
1
1
  import { Inject, Injectable, Logger } from '@nestjs/common';
2
2
  import { ConfigType } from '@nestjs/config';
3
3
  import { QueueMessage } from 'src/interfaces/mq';
4
- import { EmailQueuePublisher } from 'src/jobs/email-publisher.service';
5
4
  import commonConfig from 'src/config/common.config';
6
5
  import { EmailTemplateService } from '../email-template.service';
7
6
  import Handlebars from "handlebars";
8
7
  import { IMail, MailAttachment } from "../../interfaces";
8
+ import { PublisherFactory } from '../queues/publisher-factory.service';
9
9
 
10
10
  const nodemailer = require("nodemailer");
11
11
 
@@ -17,7 +17,9 @@ export class SMTPEMailService implements IMail {
17
17
  constructor(
18
18
  @Inject(commonConfig.KEY)
19
19
  private readonly commonConfiguration: ConfigType<typeof commonConfig>,
20
- private readonly emailPublisher: EmailQueuePublisher,
20
+ // private readonly emailPublisher: EmailQueuePublisher,
21
+ // private readonly emailDbPublisher: EmailQueueDbPublisher,
22
+ private readonly publisherFactory: PublisherFactory<any>,
21
23
  private readonly emailTemplateService: EmailTemplateService,
22
24
  ) {
23
25
  this.transporter = nodemailer.createTransport({
@@ -50,7 +52,7 @@ export class SMTPEMailService implements IMail {
50
52
  await this.sendEmail(to, subject, body, shouldQueueEmails, parentEntity, parentEntityId, attachments);
51
53
  }
52
54
 
53
- async sendEmail(to: string, subject: string, body: string, shouldQueueEmails = false, parentEntity = null, parentEntityId = null, attachments: MailAttachment[] = [], cc: string[]=[]): Promise<void> {
55
+ async sendEmail(to: string, subject: string, body: string, shouldQueueEmails = false, parentEntity = null, parentEntityId = null, attachments: MailAttachment[] = [], cc: string[] = []): Promise<void> {
54
56
  const message = {
55
57
  payload: {
56
58
  from: this.commonConfiguration.smtpMail.from,
@@ -81,7 +83,11 @@ export class SMTPEMailService implements IMail {
81
83
  async sendEmailAsynchronously(message) {
82
84
  const { to, subject, body } = message.payload;
83
85
  // this.notificationPublisherService.publish(message);
84
- this.emailPublisher.publish(message);
86
+ // this.emailPublisher.publish(message);
87
+ // this.emailDbPublisher.publish(message);
88
+
89
+ this.publisherFactory.publish(message, 'EmailQueuePublisher');
90
+
85
91
  this.logger.debug(`Queueing email to ${to} with subject ${subject} and body ${body}`);
86
92
  }
87
93
 
@@ -92,7 +98,7 @@ export class SMTPEMailService implements IMail {
92
98
  const attachmentEntry = {
93
99
  filename: attachment.filename,
94
100
  contentType: attachment.contentType,
95
- }
101
+ }
96
102
  if (attachment.path) {
97
103
  attachmentEntry['path'] = attachment.path;
98
104
  }
@@ -40,12 +40,10 @@ export class MediaService extends CRUDService<Media> {
40
40
  @InjectRepository(FieldMetadata)
41
41
  private readonly fieldMetadataRepo: Repository<FieldMetadata>,
42
42
  readonly moduleRef: ModuleRef,
43
-
44
-
45
-
46
43
  ) {
47
44
  super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'media', 'solid-core', moduleRef);
48
45
  }
46
+
49
47
  async find(basicFilterDto: BasicFilterDto, solidRequestContext: any = {}) {
50
48
  const data = await super.find(basicFilterDto, solidRequestContext);
51
49
  if (data.records) {
@@ -64,17 +62,18 @@ export class MediaService extends CRUDService<Media> {
64
62
  if (data.groupRecords) {
65
63
  data.groupRecords.forEach((group) => {
66
64
  group.groupData.records.forEach((media) => {
67
- if (media.mediaStorageProviderMetadata?.type === MediaStorageProviderType.Filesystem) {
68
- media.relativeUri = `${process.env.BASE_URL}/${this.getFileSysytemFullFilePath(media.relativeUri)}`;
69
- }
70
- else if (media.mediaStorageProviderMetadata?.type === MediaStorageProviderType.AwsS3) {
71
- media.relativeUri = this.getAwsS3FullFilePath(media.relativeUri, media.mediaStorageProviderMetadata.bucketName, media.mediaStorageProviderMetadata.region);
72
- }
65
+ if (media.mediaStorageProviderMetadata?.type === MediaStorageProviderType.Filesystem) {
66
+ media.relativeUri = `${process.env.BASE_URL}/${this.getFileSysytemFullFilePath(media.relativeUri)}`;
67
+ }
68
+ else if (media.mediaStorageProviderMetadata?.type === MediaStorageProviderType.AwsS3) {
69
+ media.relativeUri = this.getAwsS3FullFilePath(media.relativeUri, media.mediaStorageProviderMetadata.bucketName, media.mediaStorageProviderMetadata.region);
70
+ }
73
71
  });
74
- });
72
+ });
75
73
  }
76
74
  return data
77
75
  }
76
+
78
77
  async upload(createDto: any, files: Array<Express.Multer.File>) {
79
78
 
80
79
  if (!files) {
@@ -1,5 +1,5 @@
1
- import { Injectable, Logger } from "@nestjs/common";
2
- import { ConfigService } from "@nestjs/config";
1
+ import { Inject, Injectable, Logger } from "@nestjs/common";
2
+ import { ConfigService, ConfigType } from "@nestjs/config";
3
3
  import { CommonEntity } from "src/entities/common.entity";
4
4
  import { FieldMetadata } from "src/entities/field-metadata.entity";
5
5
  import { Media } from "src/entities/media.entity";
@@ -7,6 +7,7 @@ import { MediaStorageProvider } from "src/interfaces";
7
7
  import { FileService } from "src/services/file.service";
8
8
  import { Readable } from "stream";
9
9
  import { MediaRepository } from "src/repository/media.repository";
10
+ import commonConfig from "src/config/common.config";
10
11
 
11
12
  @Injectable()
12
13
  export class FileS3StorageProvider<T> implements MediaStorageProvider<T> {
@@ -17,21 +18,41 @@ export class FileS3StorageProvider<T> implements MediaStorageProvider<T> {
17
18
  // private readonly appBuilderConfiguration: ConfigType<typeof appBuilderConfig>,
18
19
  private readonly configService: ConfigService,
19
20
  readonly fileService: FileService,
20
- readonly mediaRepository: MediaRepository
21
+ readonly mediaRepository: MediaRepository,
22
+ @Inject(commonConfig.KEY)
23
+ private readonly commonConfiguration: ConfigType<typeof commonConfig>,
21
24
  ) { }
25
+
22
26
  storeStreams(streamPairs: [Readable, string][], entity: T, mediaFieldMetadata: FieldMetadata): Promise<Media[]> {
23
27
  throw new Error("Method not implemented.");
24
28
  }
29
+
25
30
  async retrieve(entity: T, mediaFieldMetadata: FieldMetadata): Promise<Media[]> {
26
31
  if (!(entity instanceof CommonEntity)) {
27
32
  throw new Error("Entity must be an instance of CommonEntity"); //FIXME This needs to be handled through generics. e.g T extends CommonEntity
28
33
  }
29
34
  const media = await this.mediaRepository.findByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id, ['mediaStorageProviderMetadata']);
35
+
36
+ // TODO: Check if the mediaStorageProvider (s3 in this case) is configured with a public bucket or not.
37
+ // If private bucket then we need to return a "signed-url", the timeout for the signed url can be configured in the media storage provider entity and modified using the CRUD interface.
30
38
  // Add the full URL to the media
31
- media.forEach(m => {
32
- m['_full_url'] = this.getFullFilePath(m);
33
- });
39
+ for (const m of media) {
40
+ const storageMeta = m.mediaStorageProviderMetadata;
41
+ if (storageMeta.isPublic === false) {
42
+ // Generate signed URL
43
+ const expiryInSeconds = (storageMeta.signedUrlExpiry ?? 60) * 60; // default 5 min
44
+ m['_full_url'] = await this.fileService.getSignedUrl(m.relativeUri, expiryInSeconds, storageMeta?.bucketName);
45
+ } else {
46
+ // Public S3 or local filesystem: use normal URL
47
+ m['_full_url'] = this.getFullFilePath(m);
48
+ }
49
+ }
50
+
34
51
  return media;
52
+ // media.forEach(m => {
53
+ // m['_full_url'] = this.getFullFilePath(m);
54
+ // });
55
+ // return media;
35
56
  }
36
57
 
37
58
  async store(files: Express.Multer.File[], entity: T, mediaFieldMetadata: FieldMetadata): Promise<Media[]> {
@@ -44,9 +65,9 @@ export class FileS3StorageProvider<T> implements MediaStorageProvider<T> {
44
65
  // Store the file in the configured S3 Bucket
45
66
  let awsFileUrl;
46
67
  if (mediaFieldMetadata.mediaStorageProvider.isPublic === true) {
47
- awsFileUrl = await this.fileService.copyToS3(file.path, file.mimetype, fileName, mediaFieldMetadata.mediaStorageProvider.bucketName,);
48
- } else {
49
68
  awsFileUrl = await this.fileService.copyToS3WithPublic(file.path, file.mimetype, fileName, mediaFieldMetadata.mediaStorageProvider.bucketName,);
69
+ } else {
70
+ awsFileUrl = await this.fileService.copyToS3(file.path, file.mimetype, fileName, mediaFieldMetadata.mediaStorageProvider.bucketName,);
50
71
  }
51
72
  await this.fileService.deleteFile(file.path);
52
73
 
@@ -71,7 +92,7 @@ export class FileS3StorageProvider<T> implements MediaStorageProvider<T> {
71
92
  if (!(entity instanceof CommonEntity)) {
72
93
  throw new Error("Entity must be an instance of CommonEntity"); //FIXME This needs to be handled through generics. e.g T extends CommonEntity
73
94
  }
74
- const existingMedia = await this.mediaRepository.findByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id,['mediaStorageProviderMetadata']);
95
+ const existingMedia = await this.mediaRepository.findByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id, ['mediaStorageProviderMetadata']);
75
96
  this.mediaRepository.deleteByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id);
76
97
  existingMedia.forEach(media => {
77
98
  this.fileService.deleteFromS3(media.relativeUri, mediaFieldMetadata.mediaStorageProvider.bucketName); //TODO
@@ -15,12 +15,12 @@ export class FileStorageProvider<T> implements MediaStorageProvider<T> {
15
15
  constructor(
16
16
  // @Inject(appBuilderConfig.KEY)
17
17
  // private readonly appBuilderConfiguration: ConfigType<typeof appBuilderConfig>,
18
- private readonly configService: ConfigService,
18
+ private readonly configService: ConfigService,
19
19
  readonly fileService: FileService,
20
20
  readonly mediaRepository: MediaRepository
21
-
21
+
22
22
  ) { }
23
-
23
+
24
24
  async retrieve(entity: T, mediaFieldMetadata: FieldMetadata): Promise<Media[]> {
25
25
  if (!(entity instanceof CommonEntity)) {
26
26
  throw new Error("Entity must be an instance of CommonEntity"); //FIXME This needs to be handled through generics. e.g T extends CommonEntity
@@ -45,7 +45,7 @@ export class FileStorageProvider<T> implements MediaStorageProvider<T> {
45
45
  await this.fileService.deleteFile(file.path);
46
46
 
47
47
  // Create an entry in the media table
48
- const mediaEntity = await this.mediaRepository.createMedia({
48
+ const mediaEntity = await this.mediaRepository.createMedia({
49
49
  entityId: entity.id,
50
50
  modelMetadataId: mediaFieldMetadata.model.id,
51
51
  relativeUri: this.getFileName(file),
@@ -86,7 +86,7 @@ export class FileStorageProvider<T> implements MediaStorageProvider<T> {
86
86
  if (!(entity instanceof CommonEntity)) {
87
87
  throw new Error("Entity must be an instance of CommonEntity"); //FIXME This needs to be handled through generics. e.g T extends CommonEntity
88
88
  }
89
- const existingMedia = await this.mediaRepository.findByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id,['mediaStorageProviderMetadata']);
89
+ const existingMedia = await this.mediaRepository.findByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id, ['mediaStorageProviderMetadata']);
90
90
  this.mediaRepository.deleteByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id);
91
91
  existingMedia.forEach(media => {
92
92
  this.fileService.deleteFile(this.getFullFilePath(media.relativeUri));
@@ -6,11 +6,11 @@ import { FileStorageProvider } from "./file-storage-provider";
6
6
  export async function getMediaStorageProvider<T>(
7
7
  moduleRef: ModuleRef,
8
8
  type: MediaStorageProviderType): Promise<any> {
9
- switch(type) {
9
+ switch (type) {
10
10
  case MediaStorageProviderType.Filesystem:
11
- return await moduleRef.get(FileStorageProvider,{ strict: false });
11
+ return await moduleRef.get(FileStorageProvider, { strict: false });
12
12
  case MediaStorageProviderType.AwsS3:
13
- return await moduleRef.get(FileS3StorageProvider,{ strict: false });
13
+ return await moduleRef.get(FileS3StorageProvider, { strict: false });
14
14
  default:
15
15
  throw new Error(`Unknown media storage provider type ${type}`);
16
16
  }
@@ -32,7 +32,7 @@ export class MenuItemMetadataService extends CRUDService<MenuItemMetadata> {
32
32
  readonly moduleRef: ModuleRef
33
33
 
34
34
  ) {
35
- super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'menuItemMetadata', 'app-builder',moduleRef);
35
+ super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'menuItemMetadata', 'solid-core', moduleRef);
36
36
  }
37
37
 
38
38
 
@@ -178,7 +178,7 @@ export class MenuItemMetadataService extends CRUDService<MenuItemMetadata> {
178
178
  title: rootItem.displayName || rootItem.name,
179
179
  path: path,
180
180
  key: rootItem.name.toLowerCase().replace(/\s+/g, '-'),
181
- icon : rootItem.iconName,
181
+ icon: rootItem.iconName,
182
182
  // iconVariant : rootItem.iconVariant
183
183
  }
184
184
  if (children.length > 0) {
@@ -24,7 +24,6 @@ import { CrudHelperService } from './crud-helper.service';
24
24
  import { FieldMetadataService } from './field-metadata.service';
25
25
  import { MediaStorageProviderMetadataService } from './media-storage-provider-metadata.service';
26
26
  import { RoleMetadataService } from './role-metadata.service';
27
- import { GenerateCodePublisher } from 'src/jobs/database/generate-code-publisher.service';
28
27
  import { PermissionMetadata } from 'src/entities/permission-metadata.entity';
29
28
  import { classify, dasherize } from '@angular-devkit/core/src/utils/strings';
30
29
  import { DisallowInProduction } from 'src/decorators/disallow-in-production.decorator';
@@ -45,7 +44,8 @@ export class ModelMetadataService {
45
44
  private readonly fieldMetadataService: FieldMetadataService,
46
45
  private readonly roleService: RoleMetadataService,
47
46
  private readonly moduleMetadataHelperService: ModuleMetadataHelperService,
48
- private readonly generateCodePublihser: GenerateCodePublisher,
47
+ // No longer used.
48
+ // private readonly generateCodePublihser: GenerateCodePublisherDatabase,
49
49
  ) { }
50
50
 
51
51
  async findMany(basicFilterDto: BasicFilterDto) {
@@ -228,7 +228,7 @@ export class ModelMetadataService {
228
228
  if (fieldMetadata.isUserKey) {
229
229
  userKeyField = affectedField;
230
230
  }
231
- listViewLayout.push({ type: "field", attrs: { name: `${affectedField.name}`, sortable: true, filterable: true } })
231
+ listViewLayout.push({ type: "field", attrs: { name: `${affectedField.name}` } })
232
232
  formViewLayout.push({ type: "field", attrs: { name: `${affectedField.name}` } })
233
233
 
234
234
  }
@@ -779,13 +779,13 @@ export class ModelMetadataService {
779
779
  const filePath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(model.module.name);
780
780
  const metaData = await this.moduleMetadataHelperService.getModuleMetadataConfiguration(filePath);
781
781
 
782
- const listViewLayoutFields = [{ type: "field", attrs: { name: `id`, sortable: true, filterable: true } }];
782
+ const listViewLayoutFields = [{ type: "field", attrs: { name: `id` } }];
783
783
  const formViewLayoutFields = [];
784
784
 
785
785
  for (let i = 0; i < model.fields.length; i++) {
786
786
  const field = model.fields[i];
787
787
  if (field.isSystem) continue;
788
- listViewLayoutFields.push({ type: "field", attrs: { name: `${field.name}`, sortable: true, filterable: true } })
788
+ listViewLayoutFields.push({ type: "field", attrs: { name: `${field.name}` } })
789
789
  formViewLayoutFields.push({ type: "field", attrs: { name: `${field.name}` } })
790
790
  }
791
791
  this.populateVAMConfigInFileInternal(formViewLayoutFields, model, listViewLayoutFields, metaData);
@@ -801,7 +801,7 @@ export class ModelMetadataService {
801
801
  }
802
802
 
803
803
  // Populate the View, Actions and Menus in the config file
804
- private populateVAMConfigInFileInternal(formViewLayoutFields: any[], model: ModelMetadata, listViewLayoutFields: { type: string; attrs: { name: string; sortable: boolean; filterable: boolean; }; }[], metaData: any) {
804
+ private populateVAMConfigInFileInternal(formViewLayoutFields: any[], model: ModelMetadata, listViewLayoutFields: { type: string; attrs: { name: string; }; }[], metaData: any) {
805
805
  const column1Fields = [];
806
806
  const column2Fields = [];
807
807
 
@@ -813,35 +813,36 @@ export class ModelMetadataService {
813
813
  column2Fields.push(formViewLayoutFields[i]);
814
814
  }
815
815
  }
816
+ const actionName = `${model.singularName}-list-action`;
816
817
  const viewName = `${model.singularName}-list-view`;
817
818
  const formViewName = `${model.singularName}-form-view`;
818
819
  const menuName = `${model.singularName}-menu-item`;
819
820
 
820
821
  const action = {
821
- displayName: `${model.displayName} List View`,
822
- name: `${model.singularName}-list-view`,
822
+ displayName: `${model.displayName} List Action`,
823
+ name: actionName,
823
824
  type: "solid",
824
825
  domain: "",
825
826
  context: "",
826
827
  customComponent: `/admin/address-master/${model.singularName}/all`,
827
828
  customIsModal: true,
828
829
  serverEndpoint: "",
829
- viewUserKey: `${model.singularName}-list-view`,
830
+ viewUserKey: viewName,
830
831
  moduleUserKey: `${model.module.name}`,
831
832
  modelUserKey: `${model.singularName}`
832
833
  };
833
834
 
834
835
  const menu = {
835
836
  displayName: `${model.displayName}`,
836
- name: `${model.singularName}-menu-item`,
837
+ name: menuName,
837
838
  sequenceNumber: 1,
838
- actionUserKey: `${model.singularName}-list-view`,
839
+ actionUserKey: actionName,
839
840
  moduleUserKey: `${model.module.name}`,
840
841
  parentMenuItemUserKey: ""
841
842
  };
842
843
 
843
844
  const modelListview = {
844
- name: `${model.singularName}-list-view`,
845
+ name: viewName,
845
846
  displayName: `${model.displayName}`,
846
847
  type: "list",
847
848
  context: "{}",
@@ -867,7 +868,7 @@ export class ModelMetadataService {
867
868
 
868
869
 
869
870
  const modelFormView = {
870
- name: `${model.singularName}-form-view`,
871
+ name: formViewName,
871
872
  displayName: `${model.displayName}`,
872
873
  type: "form",
873
874
  context: "{}",
@@ -29,7 +29,7 @@ export class MqMessageQueueService extends CRUDService<MqMessageQueue> {
29
29
  readonly moduleRef: ModuleRef
30
30
 
31
31
  ) {
32
- super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'mqMessageQueue', 'queues',moduleRef);
32
+ super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'mqMessageQueue', 'solid-core', moduleRef);
33
33
  }
34
34
 
35
35
  async resolveQueue(queueName: string): Promise<MqMessageQueue> {
@@ -29,7 +29,7 @@ export class MqMessageService extends CRUDService<MqMessage> {
29
29
  readonly repo: Repository<MqMessage>,
30
30
  readonly moduleRef: ModuleRef
31
31
  ) {
32
- super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'mqMessage', 'queues', moduleRef);
32
+ super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'mqMessage', 'solid-core', moduleRef);
33
33
  }
34
34
 
35
35
  async lockNextPendingMessage(queueName: string): Promise<MqMessage | null> {
@@ -1,5 +1,4 @@
1
1
  import { Logger, OnModuleInit } from '@nestjs/common';
2
- import * as amqp from 'amqplib';
3
2
  import { QueuesModuleOptions } from "../../interfaces";
4
3
  import { QueueMessage, QueueSubscriber } from '../../interfaces/mq';
5
4
  import { MqMessageQueueService } from '../mq-message-queue.service';
@@ -92,7 +91,7 @@ export abstract class DatabaseSubscriber<T> implements OnModuleInit, QueueSubscr
92
91
  // start the loop
93
92
  poll();
94
93
 
95
- this.logger.debug(`DatabaseSubscriber ready to consume messages: ${JSON.stringify(this.options())}`);
94
+ this.logger.log(`DatabaseSubscriber ready to consume messages: ${JSON.stringify(this.options())}`);
96
95
  }
97
96
  }
98
97
 
@@ -0,0 +1,41 @@
1
+ import { Logger } from '@nestjs/common';
2
+ import { Injectable } from '@nestjs/common';
3
+
4
+ import { QueueMessage, QueuePublisher } from 'src/interfaces/mq';
5
+ import { classify } from '@angular-devkit/core/src/utils/strings';
6
+ import { SolidIntrospectService } from '../solid-introspect.service';
7
+
8
+
9
+ @Injectable()
10
+ export class PublisherFactory<T> {
11
+ private readonly logger = new Logger(PublisherFactory.name);
12
+
13
+ constructor(
14
+ private readonly solidIntrospectionService: SolidIntrospectService
15
+ ) {
16
+ }
17
+
18
+ async publish(message: QueueMessage<T>, publisherName: string, brokerToUse?: string): Promise<string> {
19
+ let defaultBrokerToUse = brokerToUse || process.env.QUEUES_DEFAULT_BROKER;
20
+ let resolvedPublisherName = `${publisherName}${classify(defaultBrokerToUse)}`;
21
+
22
+ // Register all ISolidDatabaseModules implementations
23
+ let actualPublisherToUse = this.solidIntrospectionService.getProvider(resolvedPublisherName);
24
+ if (!actualPublisherToUse) {
25
+
26
+ // Extra check in place to make sure we do not have to refactor old publishers which have been created earlier.
27
+ if (defaultBrokerToUse === 'rabbitmq') {
28
+ actualPublisherToUse = this.solidIntrospectionService.getProvider(publisherName);
29
+ if (!actualPublisherToUse) {
30
+ throw new Error(`Unable to locate publisher with name ${resolvedPublisherName}`);
31
+ }
32
+ }
33
+ }
34
+
35
+ // type safe
36
+ const typedActualPublisher: QueuePublisher<T> = actualPublisherToUse.instance;
37
+ this.logger.error(`Resolved publisher with name ${actualPublisherToUse.name}, and with options ${typedActualPublisher.options()}`);
38
+
39
+ return typedActualPublisher.publish(message);
40
+ }
41
+ }
@@ -121,7 +121,7 @@ export abstract class RabbitMqSubscriber<T> implements OnModuleInit, QueueSubscr
121
121
  {},
122
122
  );
123
123
 
124
- this.logger.debug(`RabbitMqSubscriber ready to consume messages: ${JSON.stringify(this.options())} and url: ${this.url}`);
124
+ this.logger.log(`RabbitMqSubscriber ready to consume messages: ${JSON.stringify(this.options())} and url: ${this.url}`);
125
125
  }
126
126
  }
127
127
 
@@ -0,0 +1,34 @@
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';
3
+ import { DiscoveryService, ModuleRef } from "@nestjs/core";
4
+ import { EntityManager, Repository } from 'typeorm';
5
+ import { ScheduledJob } from 'src/entities/scheduled-job.entity';
6
+ import { ModelMetadataService } from './model-metadata.service';
7
+ import { ModuleMetadataService } from './module-metadata.service';
8
+ import { ConfigService } from '@nestjs/config';
9
+ import { FileService } from './file.service';
10
+ import { CrudHelperService } from './crud-helper.service';
11
+ import { CRUDService } from './crud.service';
12
+ import { Logger } from '@nestjs/common';
13
+
14
+ @Injectable()
15
+ export class ScheduledJobService extends CRUDService<ScheduledJob> {
16
+ private readonly logger = new Logger(ScheduledJobService.name);
17
+
18
+ constructor(
19
+ readonly modelMetadataService: ModelMetadataService,
20
+ readonly moduleMetadataService: ModuleMetadataService,
21
+ readonly configService: ConfigService,
22
+ readonly fileService: FileService,
23
+ readonly discoveryService: DiscoveryService,
24
+ readonly crudHelperService: CrudHelperService,
25
+ @InjectEntityManager()
26
+ readonly entityManager: EntityManager,
27
+ @InjectRepository(ScheduledJob)
28
+ readonly repo: Repository<ScheduledJob>,
29
+ readonly moduleRef: ModuleRef
30
+
31
+ ) {
32
+ super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'scheduledJob', 'solid-core', moduleRef);
33
+ }
34
+ }
@@ -0,0 +1,5 @@
1
+ import { ScheduledJob } from "src/entities/scheduled-job.entity";
2
+
3
+ export interface IScheduledJob {
4
+ executeReminder(reminder: ScheduledJob): Promise<void>;
5
+ }
@@ -0,0 +1,3 @@
1
+ export interface ISchedulerService {
2
+ runScheduledJobs(): Promise<void>;
3
+ }