@solidstarters/solid-core 1.2.124 → 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.
- package/dist/cli.js.map +1 -1
- package/dist/commands/helper.js.map +1 -1
- package/dist/commands/refresh-model.command.js.map +1 -1
- package/dist/commands/refresh-module.command.js.map +1 -1
- package/dist/commands/remove-fields.command.js.map +1 -1
- package/dist/commands/seed.command.js.map +1 -1
- package/dist/config/app-builder.config.js.map +1 -1
- package/dist/config/cache.options.js.map +1 -1
- package/dist/config/common.config.js.map +1 -1
- package/dist/config/iam.config.js.map +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/controllers/action-metadata.controller.js.map +1 -1
- package/dist/controllers/authentication.controller.js.map +1 -1
- package/dist/controllers/chatter-message-details.controller.js.map +1 -1
- package/dist/controllers/chatter-message.controller.js.map +1 -1
- package/dist/controllers/email-template.controller.js.map +1 -1
- package/dist/controllers/export-template.controller.js.map +1 -1
- package/dist/controllers/export-transaction.controller.js.map +1 -1
- package/dist/controllers/field-metadata.controller.js.map +1 -1
- package/dist/controllers/google-authentication.controller.js.map +1 -1
- package/dist/controllers/import-transaction-error-log.controller.js.map +1 -1
- package/dist/controllers/import-transaction.controller.js.map +1 -1
- package/dist/controllers/list-of-values.controller.js.map +1 -1
- package/dist/controllers/locale.controller.js.map +1 -1
- package/dist/controllers/media-storage-provider-metadata.controller.d.ts.map +1 -1
- package/dist/controllers/media-storage-provider-metadata.controller.js +3 -0
- package/dist/controllers/media-storage-provider-metadata.controller.js.map +1 -1
- package/dist/controllers/media.controller.js.map +1 -1
- package/dist/controllers/menu-item-metadata.controller.js.map +1 -1
- package/dist/controllers/model-metadata.controller.js.map +1 -1
- package/dist/controllers/module-metadata.controller.js.map +1 -1
- package/dist/controllers/mq-message-queue.controller.js.map +1 -1
- package/dist/controllers/mq-message.controller.js.map +1 -1
- package/dist/controllers/otp-authentication.controller.js.map +1 -1
- package/dist/controllers/permission-metadata.controller.js.map +1 -1
- package/dist/controllers/role-metadata.controller.js.map +1 -1
- package/dist/controllers/saved-filters.controller.js.map +1 -1
- package/dist/controllers/scheduled-job.controller.d.ts +43 -0
- package/dist/controllers/scheduled-job.controller.d.ts.map +1 -0
- package/dist/controllers/scheduled-job.controller.js +179 -0
- package/dist/controllers/scheduled-job.controller.js.map +1 -0
- package/dist/controllers/security-rule.controller.js.map +1 -1
- package/dist/controllers/service.controller.js.map +1 -1
- package/dist/controllers/setting.controller.js.map +1 -1
- package/dist/controllers/sms-template.controller.js.map +1 -1
- package/dist/controllers/test-queue.controller.d.ts +7 -0
- package/dist/controllers/test-queue.controller.d.ts.map +1 -0
- package/dist/controllers/{queues-test.controller.js → test-queue.controller.js} +12 -20
- package/dist/controllers/test-queue.controller.js.map +1 -0
- package/dist/controllers/test.controller.js.map +1 -1
- package/dist/controllers/user-activity-history.controller.js.map +1 -1
- package/dist/controllers/user-view-metadata.controller.js.map +1 -1
- package/dist/controllers/user.controller.js.map +1 -1
- package/dist/controllers/view-metadata.controller.js.map +1 -1
- package/dist/decorators/active-user.decorator.js.map +1 -1
- package/dist/decorators/auth.decorator.js.map +1 -1
- package/dist/decorators/computed-field-provider.decorator.js.map +1 -1
- package/dist/decorators/disallow-in-production.decorator.js.map +1 -1
- package/dist/decorators/is-not-in-enum.decorator.js.map +1 -1
- package/dist/decorators/protocol.decorator.js.map +1 -1
- package/dist/decorators/public.decorator.js.map +1 -1
- package/dist/decorators/roles.decorator.js.map +1 -1
- package/dist/decorators/scheduled-job-provider.decorator.d.ts +3 -0
- package/dist/decorators/scheduled-job-provider.decorator.d.ts.map +1 -0
- package/dist/decorators/scheduled-job-provider.decorator.js +11 -0
- package/dist/decorators/scheduled-job-provider.decorator.js.map +1 -0
- package/dist/decorators/selection-provider.decorator.js.map +1 -1
- package/dist/decorators/solid-database-module.decorator.js.map +1 -1
- package/dist/decorators/solid-request-context.decorator.js.map +1 -1
- package/dist/decorators/solid-service.decorator.js.map +1 -1
- package/dist/dtos/basic-filters.dto.js.map +1 -1
- package/dist/dtos/change-password.dto.js.map +1 -1
- package/dist/dtos/confirm-forgot-password.dto.js.map +1 -1
- package/dist/dtos/create-action-metadata.dto.js.map +1 -1
- package/dist/dtos/create-chatter-message-details.dto.js.map +1 -1
- package/dist/dtos/create-chatter-message.dto.js.map +1 -1
- package/dist/dtos/create-email-attachment.dto.js.map +1 -1
- package/dist/dtos/create-email-template.dto.js.map +1 -1
- package/dist/dtos/create-export-template.dto.js.map +1 -1
- package/dist/dtos/create-export-transaction.dto.js.map +1 -1
- package/dist/dtos/create-field-metadata.dto.d.ts +14 -0
- package/dist/dtos/create-field-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-field-metadata.dto.js +15 -2
- package/dist/dtos/create-field-metadata.dto.js.map +1 -1
- package/dist/dtos/create-import-transaction-error-log.dto.js.map +1 -1
- package/dist/dtos/create-import-transaction.dto.js.map +1 -1
- package/dist/dtos/create-list-of-values.dto.js.map +1 -1
- package/dist/dtos/create-locale.dto.js.map +1 -1
- package/dist/dtos/create-media-storage-provider-metadata.dto.d.ts +1 -0
- package/dist/dtos/create-media-storage-provider-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-media-storage-provider-metadata.dto.js +6 -1
- package/dist/dtos/create-media-storage-provider-metadata.dto.js.map +1 -1
- package/dist/dtos/create-media.dto.js.map +1 -1
- package/dist/dtos/create-menu-item-metadata.dto.js.map +1 -1
- package/dist/dtos/create-message.dto.js.map +1 -1
- package/dist/dtos/create-model-metadata.dto.js.map +1 -1
- package/dist/dtos/create-module-metadata.dto.js.map +1 -1
- package/dist/dtos/create-mq-message-queue.dto.js.map +1 -1
- package/dist/dtos/create-mq-message.dto.js.map +1 -1
- package/dist/dtos/create-permission-metadata.dto.js.map +1 -1
- package/dist/dtos/create-role-metadata.dto.js.map +1 -1
- package/dist/dtos/create-saved-filters.dto.js.map +1 -1
- package/dist/dtos/create-scheduled-job.dto.d.ts +15 -0
- package/dist/dtos/create-scheduled-job.dto.d.ts.map +1 -0
- package/dist/dtos/create-scheduled-job.dto.js +98 -0
- package/dist/dtos/create-scheduled-job.dto.js.map +1 -0
- package/dist/dtos/create-security-rule.dto.js.map +1 -1
- package/dist/dtos/create-setting.dto.js.map +1 -1
- package/dist/dtos/create-short-url.dto.js.map +1 -1
- package/dist/dtos/create-sms-template.dto.js.map +1 -1
- package/dist/dtos/create-user-activity-history.dto.js.map +1 -1
- package/dist/dtos/create-user-view-metadata.dto.js.map +1 -1
- package/dist/dtos/create-user.dto.js.map +1 -1
- package/dist/dtos/create-view-metadata.dto.js.map +1 -1
- package/dist/dtos/export.dto.js.map +1 -1
- package/dist/dtos/fetch-roles.dto.js.map +1 -1
- package/dist/dtos/import-instructions.dto.js.map +1 -1
- package/dist/dtos/initiate-forgot-password.dto.js.map +1 -1
- package/dist/dtos/mutate-role-permissions.dto.js.map +1 -1
- package/dist/dtos/mutate-user-roles-list.dto.js.map +1 -1
- package/dist/dtos/mutate-user-roles.dto.js.map +1 -1
- package/dist/dtos/oauth-user-dto.js.map +1 -1
- package/dist/dtos/otp-confirm-otp.dto.js.map +1 -1
- package/dist/dtos/otp-sign-in.dto.js.map +1 -1
- package/dist/dtos/otp-sign-up.dto.js.map +1 -1
- package/dist/dtos/pagination-query.dto.js.map +1 -1
- package/dist/dtos/post-chatter-message.dto.js.map +1 -1
- package/dist/dtos/query.dto.js.map +1 -1
- package/dist/dtos/refresh-token.dto.js.map +1 -1
- package/dist/dtos/register-private.dto.js.map +1 -1
- package/dist/dtos/security-rule-config.dto.js.map +1 -1
- package/dist/dtos/selection-dynamic-query.dto.js.map +1 -1
- package/dist/dtos/sign-in.dto.js.map +1 -1
- package/dist/dtos/sign-up.dto.js.map +1 -1
- package/dist/dtos/solid-request-context.dto.js.map +1 -1
- package/dist/dtos/sort-filter.dto.js.map +1 -1
- package/dist/dtos/update-action-metadata.dto.js.map +1 -1
- package/dist/dtos/update-chatter-message-details.dto.js.map +1 -1
- package/dist/dtos/update-chatter-message.dto.js.map +1 -1
- package/dist/dtos/update-email-attachment.dto.js.map +1 -1
- package/dist/dtos/update-email-template.dto.js.map +1 -1
- package/dist/dtos/update-export-template.dto.js.map +1 -1
- package/dist/dtos/update-export-transaction.dto.js.map +1 -1
- package/dist/dtos/update-field-metadata.dto.js.map +1 -1
- package/dist/dtos/update-import-transaction-error-log.dto.js.map +1 -1
- package/dist/dtos/update-import-transaction.dto.js.map +1 -1
- package/dist/dtos/update-list-of-values.dto.js.map +1 -1
- package/dist/dtos/update-locale.dto.js.map +1 -1
- package/dist/dtos/update-media-storage-provider.dto.js.map +1 -1
- package/dist/dtos/update-media.dto.js.map +1 -1
- package/dist/dtos/update-menu-item-metadata.dto.js.map +1 -1
- package/dist/dtos/update-message.dto.js.map +1 -1
- package/dist/dtos/update-model-metadata.dto.js.map +1 -1
- package/dist/dtos/update-module-metadata.dto.js.map +1 -1
- package/dist/dtos/update-mq-message-queue.dto.js.map +1 -1
- package/dist/dtos/update-mq-message.dto.js.map +1 -1
- package/dist/dtos/update-permission-metadata.dto.js.map +1 -1
- package/dist/dtos/update-role-metadata.dto.js.map +1 -1
- package/dist/dtos/update-saved-filters.dto.js.map +1 -1
- package/dist/dtos/update-scheduled-job.dto.d.ts +16 -0
- package/dist/dtos/update-scheduled-job.dto.d.ts.map +1 -0
- package/dist/dtos/update-scheduled-job.dto.js +103 -0
- package/dist/dtos/update-scheduled-job.dto.js.map +1 -0
- package/dist/dtos/update-security-rule.dto.js.map +1 -1
- package/dist/dtos/update-setting.dto.js.map +1 -1
- package/dist/dtos/update-settings.dto.js.map +1 -1
- package/dist/dtos/update-sms-template.dto.js.map +1 -1
- package/dist/dtos/update-user-activity-history.dto.js.map +1 -1
- package/dist/dtos/update-user-profile.dto.js.map +1 -1
- package/dist/dtos/update-user-view-metadata.dto.js.map +1 -1
- package/dist/dtos/update-user.dto.js.map +1 -1
- package/dist/dtos/update-view-metadata.dto.js.map +1 -1
- package/dist/dtos/upsert-user-view-metadata.dto.js.map +1 -1
- package/dist/entities/action-metadata.entity.js.map +1 -1
- package/dist/entities/chatter-message-details.entity.js.map +1 -1
- package/dist/entities/chatter-message.entity.js.map +1 -1
- package/dist/entities/common.entity.js.map +1 -1
- package/dist/entities/email-attachment.entity.js.map +1 -1
- package/dist/entities/email-template.entity.js.map +1 -1
- package/dist/entities/export-template.entity.js.map +1 -1
- package/dist/entities/export-transaction.entity.js.map +1 -1
- package/dist/entities/field-metadata.entity.d.ts +2 -0
- package/dist/entities/field-metadata.entity.d.ts.map +1 -1
- package/dist/entities/field-metadata.entity.js +5 -1
- package/dist/entities/field-metadata.entity.js.map +1 -1
- package/dist/entities/import-transaction-error-log.entity.js.map +1 -1
- package/dist/entities/import-transaction.entity.js.map +1 -1
- package/dist/entities/list-of-values.entity.js.map +1 -1
- package/dist/entities/locale.entity.js.map +1 -1
- package/dist/entities/media-storage-provider-metadata.entity.d.ts +1 -0
- package/dist/entities/media-storage-provider-metadata.entity.d.ts.map +1 -1
- package/dist/entities/media-storage-provider-metadata.entity.js +5 -1
- package/dist/entities/media-storage-provider-metadata.entity.js.map +1 -1
- package/dist/entities/media.entity.js.map +1 -1
- package/dist/entities/menu-item-metadata.entity.js.map +1 -1
- package/dist/entities/model-metadata.entity.js.map +1 -1
- package/dist/entities/module-metadata.entity.js.map +1 -1
- package/dist/entities/mq-message-queue.entity.js.map +1 -1
- package/dist/entities/mq-message.entity.js.map +1 -1
- package/dist/entities/permission-metadata.entity.js.map +1 -1
- package/dist/entities/role-metadata.entity.js.map +1 -1
- package/dist/entities/saved-filters.entity.js.map +1 -1
- package/dist/entities/scheduled-job.entity.d.ts +16 -0
- package/dist/entities/scheduled-job.entity.d.ts.map +1 -0
- package/dist/entities/scheduled-job.entity.js +77 -0
- package/dist/entities/scheduled-job.entity.js.map +1 -0
- package/dist/entities/security-rule.entity.js.map +1 -1
- package/dist/entities/setting.entity.js.map +1 -1
- package/dist/entities/sms-template.entity.js.map +1 -1
- package/dist/entities/user-activity-history.entity.js.map +1 -1
- package/dist/entities/user-password-history.entity.js.map +1 -1
- package/dist/entities/user-view-metadata.entity.js.map +1 -1
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/entities/view-metadata.entity.js.map +1 -1
- package/dist/enums/auth-type.enum.js.map +1 -1
- package/dist/filters/http-exception.filter.js.map +1 -1
- package/dist/guards/access-token.guard.js.map +1 -1
- package/dist/guards/authentication.guard.js.map +1 -1
- package/dist/guards/permissions.guard.js.map +1 -1
- package/dist/guards/roles.guard.js.map +1 -1
- package/dist/helpers/command.service.js.map +1 -1
- package/dist/helpers/field-crud-managers/BigIntFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/BooleanFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/ComputedFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/DateFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/DecimalFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/EmailFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/IntFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/JsonFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/LongTextFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/NoOpsFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/PasswordFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/RichTextFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/SelectionStaticFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/ShortTextFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/UUIDFieldCrudManager.js.map +1 -1
- package/dist/helpers/google-oauth.helper.js.map +1 -1
- package/dist/helpers/model-metadata-helper.service.js.map +1 -1
- package/dist/helpers/module-metadata-helper.service.js.map +1 -1
- package/dist/helpers/module.helper.js.map +1 -1
- package/dist/helpers/schematic.service.js.map +1 -1
- package/dist/helpers/solid-registry.d.ts +20 -3
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js +30 -5
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/interceptors/logging.interceptor.js.map +1 -1
- package/dist/interceptors/wrap-response.interceptor.js.map +1 -1
- package/dist/interfaces/active-user-data.interface.js.map +1 -1
- package/dist/interfaces/mq.js.map +1 -1
- package/dist/interfaces.d.ts +11 -0
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/jobs/api-email-publisher.service.js.map +1 -1
- package/dist/jobs/api-email-queue-options.js.map +1 -1
- package/dist/jobs/api-email-subscriber.service.js.map +1 -1
- package/dist/jobs/database/api-email-publisher-database.service.d.ts +11 -0
- package/dist/jobs/database/api-email-publisher-database.service.d.ts.map +1 -0
- package/dist/jobs/database/api-email-publisher-database.service.js +39 -0
- package/dist/jobs/database/api-email-publisher-database.service.js.map +1 -0
- package/dist/jobs/database/api-email-queue-options-database.d.ts +8 -0
- package/dist/jobs/database/api-email-queue-options-database.d.ts.map +1 -0
- package/dist/jobs/database/api-email-queue-options-database.js +10 -0
- package/dist/jobs/database/api-email-queue-options-database.js.map +1 -0
- package/dist/jobs/database/api-email-subscriber-database.service.d.ts +15 -0
- package/dist/jobs/database/api-email-subscriber-database.service.d.ts.map +1 -0
- package/dist/jobs/database/api-email-subscriber-database.service.js +45 -0
- package/dist/jobs/database/api-email-subscriber-database.service.js.map +1 -0
- package/dist/jobs/database/computed-field-evaluation-publisher.service.d.ts +12 -0
- package/dist/jobs/database/computed-field-evaluation-publisher.service.d.ts.map +1 -0
- package/dist/jobs/database/computed-field-evaluation-publisher.service.js +39 -0
- package/dist/jobs/database/computed-field-evaluation-publisher.service.js.map +1 -0
- package/dist/jobs/database/computed-field-evaluation-queue-options.d.ts +8 -0
- package/dist/jobs/database/computed-field-evaluation-queue-options.d.ts.map +1 -0
- package/dist/jobs/database/computed-field-evaluation-queue-options.js +10 -0
- package/dist/jobs/database/computed-field-evaluation-queue-options.js.map +1 -0
- package/dist/jobs/database/computed-field-evaluation-subscriber.service.d.ts +16 -0
- package/dist/jobs/database/computed-field-evaluation-subscriber.service.d.ts.map +1 -0
- package/dist/jobs/database/computed-field-evaluation-subscriber.service.js +48 -0
- package/dist/jobs/database/computed-field-evaluation-subscriber.service.js.map +1 -0
- package/dist/jobs/database/email-publisher-database.service.d.ts +11 -0
- package/dist/jobs/database/email-publisher-database.service.d.ts.map +1 -0
- package/dist/jobs/database/email-publisher-database.service.js +39 -0
- package/dist/jobs/database/email-publisher-database.service.js.map +1 -0
- package/dist/jobs/database/email-queue-options-database.d.ts +8 -0
- package/dist/jobs/database/email-queue-options-database.d.ts.map +1 -0
- package/dist/jobs/database/email-queue-options-database.js +10 -0
- package/dist/jobs/database/email-queue-options-database.js.map +1 -0
- package/dist/jobs/database/email-subscriber-database.service.d.ts +15 -0
- package/dist/jobs/database/email-subscriber-database.service.d.ts.map +1 -0
- package/dist/jobs/database/email-subscriber-database.service.js +45 -0
- package/dist/jobs/database/email-subscriber-database.service.js.map +1 -0
- package/dist/jobs/database/{generate-code-publisher.service.d.ts → generate-code-publisher-database.service.d.ts} +2 -2
- package/dist/jobs/database/generate-code-publisher-database.service.d.ts.map +1 -0
- package/dist/jobs/database/generate-code-publisher-database.service.js +39 -0
- package/dist/jobs/database/generate-code-publisher-database.service.js.map +1 -0
- package/dist/jobs/database/{test-queue-db-options.d.ts → generate-code-queue-options-database.d.ts} +1 -1
- package/dist/jobs/database/generate-code-queue-options-database.d.ts.map +1 -0
- package/dist/jobs/database/{generate-code-queue-options.js → generate-code-queue-options-database.js} +1 -1
- package/dist/jobs/database/generate-code-queue-options-database.js.map +1 -0
- package/dist/jobs/database/{generate-code-subscriber.service.d.ts → generate-code-subscriber-database.service.d.ts} +2 -2
- package/dist/jobs/database/generate-code-subscriber-database.service.d.ts.map +1 -0
- package/dist/jobs/database/{generate-code-subscriber.service.js → generate-code-subscriber-database.service.js} +10 -10
- package/dist/jobs/database/generate-code-subscriber-database.service.js.map +1 -0
- package/dist/jobs/database/otp-publisher-database.service.d.ts +11 -0
- package/dist/jobs/database/otp-publisher-database.service.d.ts.map +1 -0
- package/dist/jobs/database/{generate-code-publisher.service.js → otp-publisher-database.service.js} +8 -8
- package/dist/jobs/database/otp-publisher-database.service.js.map +1 -0
- package/dist/jobs/database/otp-queue-options-database.d.ts +8 -0
- package/dist/jobs/database/otp-queue-options-database.d.ts.map +1 -0
- package/dist/jobs/database/otp-queue-options-database.js +10 -0
- package/dist/jobs/database/otp-queue-options-database.js.map +1 -0
- package/dist/jobs/database/otp-subscriber-database.service.d.ts +15 -0
- package/dist/jobs/database/otp-subscriber-database.service.d.ts.map +1 -0
- package/dist/jobs/database/otp-subscriber-database.service.js +45 -0
- package/dist/jobs/database/otp-subscriber-database.service.js.map +1 -0
- package/dist/jobs/database/sms-publisher-database.service.d.ts +11 -0
- package/dist/jobs/database/sms-publisher-database.service.d.ts.map +1 -0
- package/dist/jobs/database/{queue-test-db-publisher.service.js → sms-publisher-database.service.js} +8 -8
- package/dist/jobs/database/sms-publisher-database.service.js.map +1 -0
- package/dist/jobs/database/sms-queue-database-options.d.ts +8 -0
- package/dist/jobs/database/sms-queue-database-options.d.ts.map +1 -0
- package/dist/jobs/database/sms-queue-database-options.js +10 -0
- package/dist/jobs/database/sms-queue-database-options.js.map +1 -0
- package/dist/jobs/database/sms-subscriber-database.service.d.ts +15 -0
- package/dist/jobs/database/sms-subscriber-database.service.d.ts.map +1 -0
- package/dist/jobs/database/sms-subscriber-database.service.js +45 -0
- package/dist/jobs/database/sms-subscriber-database.service.js.map +1 -0
- package/dist/jobs/database/{generate-code-queue-options.d.ts → test-queue-options-database.d.ts} +1 -1
- package/dist/jobs/database/test-queue-options-database.d.ts.map +1 -0
- package/dist/jobs/database/{test-queue-db-options.js → test-queue-options-database.js} +1 -1
- package/dist/jobs/database/test-queue-options-database.js.map +1 -0
- package/dist/jobs/database/{queue-test-db-publisher.service.d.ts → test-queue-publisher-database.service.d.ts} +2 -2
- package/dist/jobs/database/test-queue-publisher-database.service.d.ts.map +1 -0
- package/dist/jobs/database/test-queue-publisher-database.service.js +39 -0
- package/dist/jobs/database/test-queue-publisher-database.service.js.map +1 -0
- package/dist/jobs/database/{queue-test-db-subscriber.service.d.ts → test-queue-subscriber-database.service.d.ts} +2 -2
- package/dist/jobs/database/test-queue-subscriber-database.service.d.ts.map +1 -0
- package/dist/jobs/database/{queue-test-db-subscriber.service.js → test-queue-subscriber-database.service.js} +10 -10
- package/dist/jobs/database/test-queue-subscriber-database.service.js.map +1 -0
- package/dist/jobs/database/whatsapp-publisher-database.service.d.ts +11 -0
- package/dist/jobs/database/whatsapp-publisher-database.service.d.ts.map +1 -0
- package/dist/jobs/database/whatsapp-publisher-database.service.js +39 -0
- package/dist/jobs/database/whatsapp-publisher-database.service.js.map +1 -0
- package/dist/jobs/database/whatsapp-queue-options-database.d.ts +8 -0
- package/dist/jobs/database/whatsapp-queue-options-database.d.ts.map +1 -0
- package/dist/jobs/database/whatsapp-queue-options-database.js +10 -0
- package/dist/jobs/database/whatsapp-queue-options-database.js.map +1 -0
- package/dist/jobs/database/whatsapp-subscriber-database.service.d.ts +15 -0
- package/dist/jobs/database/whatsapp-subscriber-database.service.d.ts.map +1 -0
- package/dist/jobs/database/whatsapp-subscriber-database.service.js +45 -0
- package/dist/jobs/database/whatsapp-subscriber-database.service.js.map +1 -0
- package/dist/jobs/email-publisher.service.js.map +1 -1
- package/dist/jobs/email-queue-options.js.map +1 -1
- package/dist/jobs/email-subscriber.service.js.map +1 -1
- package/dist/jobs/otp-publisher.service.js.map +1 -1
- package/dist/jobs/otp-queue-options.js.map +1 -1
- package/dist/jobs/otp-subscriber.service.js.map +1 -1
- package/dist/jobs/sms-publisher.service.js.map +1 -1
- package/dist/jobs/sms-queue-options.js.map +1 -1
- package/dist/jobs/sms-subscriber.service.js.map +1 -1
- package/dist/jobs/test-queue-options.d.ts.map +1 -1
- package/dist/jobs/test-queue-options.js.map +1 -1
- package/dist/jobs/{queue-test-publisher.service.d.ts → test-queue-publisher.service.d.ts} +1 -1
- package/dist/jobs/{queue-test-publisher.service.d.ts.map → test-queue-publisher.service.d.ts.map} +1 -1
- package/dist/jobs/{queue-test-publisher.service.js → test-queue-publisher.service.js} +1 -1
- package/dist/jobs/test-queue-publisher.service.js.map +1 -0
- package/dist/jobs/{queue-test-subscriber.service.d.ts → test-queue-subscriber.service.d.ts} +1 -1
- package/dist/jobs/{queue-test-subscriber.service.d.ts.map → test-queue-subscriber.service.d.ts.map} +1 -1
- package/dist/jobs/{queue-test-subscriber.service.js → test-queue-subscriber.service.js} +1 -1
- package/dist/jobs/test-queue-subscriber.service.js.map +1 -0
- package/dist/jobs/whatsapp-publisher.service.js.map +1 -1
- package/dist/jobs/whatsapp-queue-options.js.map +1 -1
- package/dist/jobs/whatsapp-subscriber.service.js.map +1 -1
- package/dist/listeners/user-registration.listener.js.map +1 -1
- package/dist/passport-strategies/google-oauth.strategy.js.map +1 -1
- package/dist/passport-strategies/local.strategy.js.map +1 -1
- package/dist/providers/list-of-values-selection-providers.service.js.map +1 -1
- package/dist/repository/field-metadata.repository.d.ts +8 -0
- package/dist/repository/field-metadata.repository.d.ts.map +1 -0
- package/dist/repository/field-metadata.repository.js +38 -0
- package/dist/repository/field-metadata.repository.js.map +1 -0
- package/dist/repository/field.repository.d.ts +1 -1
- package/dist/repository/field.repository.d.ts.map +1 -1
- package/dist/repository/field.repository.js +6 -6
- package/dist/repository/field.repository.js.map +1 -1
- package/dist/repository/media.repository.js.map +1 -1
- package/dist/repository/security-rule.repository.js.map +1 -1
- package/dist/repository/solid-base.repository.js.map +1 -1
- package/dist/seeders/email-template-seeder.service.js.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +20 -2
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/permission-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +559 -1
- package/dist/seeders/sms-template-seeder.service.js.map +1 -1
- package/dist/seeders/system-fields-seeder.service.d.ts +3 -3
- package/dist/seeders/system-fields-seeder.service.d.ts.map +1 -1
- package/dist/seeders/system-fields-seeder.service.js +5 -6
- package/dist/seeders/system-fields-seeder.service.js.map +1 -1
- package/dist/seeders/user-seeder.service.js.map +1 -1
- package/dist/services/access-token-storage.service.js.map +1 -1
- package/dist/services/action-metadata.service.js +1 -1
- package/dist/services/action-metadata.service.js.map +1 -1
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/bcrypt.service.js.map +1 -1
- package/dist/services/chatter-message-details.service.js.map +1 -1
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/computed-fields/concat-computed-field-provider.service.js.map +1 -1
- package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.d.ts +14 -0
- package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.d.ts.map +1 -0
- package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.js +45 -0
- package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.js.map +1 -0
- package/dist/services/computed-fields/uuid-external-id-computed-field-provider.service.js.map +1 -1
- package/dist/services/crud-helper.service.js.map +1 -1
- package/dist/services/crud.service.d.ts +1 -0
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +9 -1
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/csv.service.js.map +1 -1
- package/dist/services/email-template.service.js.map +1 -1
- package/dist/services/excel.service.js.map +1 -1
- package/dist/services/export-template.service.js.map +1 -1
- package/dist/services/export-transaction.service.js.map +1 -1
- package/dist/services/field-metadata.service.d.ts +6 -2
- package/dist/services/field-metadata.service.d.ts.map +1 -1
- package/dist/services/field-metadata.service.js +21 -4
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/file.service.d.ts +1 -0
- package/dist/services/file.service.d.ts.map +1 -1
- package/dist/services/file.service.js +8 -0
- package/dist/services/file.service.js.map +1 -1
- package/dist/services/hashing.service.js.map +1 -1
- package/dist/services/import-transaction-error-log.service.js.map +1 -1
- package/dist/services/import-transaction.service.js.map +1 -1
- package/dist/services/list-of-values.service.js.map +1 -1
- package/dist/services/locale.service.js.map +1 -1
- package/dist/services/mail/ElasticEmailService.d.ts +3 -3
- package/dist/services/mail/ElasticEmailService.d.ts.map +1 -1
- package/dist/services/mail/ElasticEmailService.js +5 -5
- package/dist/services/mail/ElasticEmailService.js.map +1 -1
- package/dist/services/mail/SMTPEmailService.d.ts +3 -3
- package/dist/services/mail/SMTPEmailService.d.ts.map +1 -1
- package/dist/services/mail/SMTPEmailService.js +5 -5
- package/dist/services/mail/SMTPEmailService.js.map +1 -1
- package/dist/services/media-storage-provider-metadata-seeder.service.js.map +1 -1
- package/dist/services/media-storage-provider-metadata.service.js.map +1 -1
- package/dist/services/media.service.d.ts.map +1 -1
- package/dist/services/media.service.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts +4 -2
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +23 -7
- package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
- package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
- package/dist/services/mediaStorageProviders/index.js.map +1 -1
- package/dist/services/menu-item-metadata.service.js +1 -1
- package/dist/services/menu-item-metadata.service.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts +1 -3
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +13 -15
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/mq-message-queue.service.js +1 -1
- package/dist/services/mq-message-queue.service.js.map +1 -1
- package/dist/services/mq-message.service.js +1 -1
- package/dist/services/mq-message.service.js.map +1 -1
- package/dist/services/pdf.service.js.map +1 -1
- package/dist/services/permission-metadata.service.js.map +1 -1
- package/dist/services/queues/database-publisher.service.js.map +1 -1
- package/dist/services/queues/database-subscriber.service.d.ts.map +1 -1
- package/dist/services/queues/database-subscriber.service.js +1 -1
- package/dist/services/queues/database-subscriber.service.js.map +1 -1
- package/dist/services/queues/publisher-factory.service.d.ts +9 -0
- package/dist/services/queues/publisher-factory.service.d.ts.map +1 -0
- package/dist/services/queues/publisher-factory.service.js +45 -0
- package/dist/services/queues/publisher-factory.service.js.map +1 -0
- package/dist/services/queues/rabbitmq-publisher.service.js.map +1 -1
- package/dist/services/queues/rabbitmq-subscriber.service.js +1 -1
- package/dist/services/queues/rabbitmq-subscriber.service.js.map +1 -1
- package/dist/services/queues/redis-publisher.service.js.map +1 -1
- package/dist/services/queues/redis-subscriber.service.js.map +1 -1
- package/dist/services/refresh-token-ids-storage.service.js.map +1 -1
- package/dist/services/request-context.service.js.map +1 -1
- package/dist/services/role-metadata.service.js.map +1 -1
- package/dist/services/saved-filters.service.js.map +1 -1
- package/dist/services/scheduled-job.service.d.ts +23 -0
- package/dist/services/scheduled-job.service.d.ts.map +1 -0
- package/dist/services/scheduled-job.service.js +59 -0
- package/dist/services/scheduled-job.service.js.map +1 -0
- package/dist/services/scheduled-jobs/scheduled-job.interface.d.ts +5 -0
- package/dist/services/scheduled-jobs/scheduled-job.interface.d.ts.map +1 -0
- package/dist/services/scheduled-jobs/scheduled-job.interface.js +3 -0
- package/dist/services/scheduled-jobs/scheduled-job.interface.js.map +1 -0
- package/dist/services/scheduled-jobs/scheduler.interface.d.ts +4 -0
- package/dist/services/scheduled-jobs/scheduler.interface.d.ts.map +1 -0
- package/dist/services/scheduled-jobs/scheduler.interface.js +3 -0
- package/dist/services/scheduled-jobs/scheduler.interface.js.map +1 -0
- package/dist/services/scheduled-jobs/scheduler.service.d.ts +14 -0
- package/dist/services/scheduled-jobs/scheduler.service.d.ts.map +1 -0
- package/dist/services/scheduled-jobs/scheduler.service.js +124 -0
- package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -0
- package/dist/services/security-rule.service.js.map +1 -1
- package/dist/services/selection-providers/list-of-models-selection-provider.service.js.map +1 -1
- package/dist/services/selection-providers/list-of-scheduled-jobs-selection-provider.service.d.ts +11 -0
- package/dist/services/selection-providers/list-of-scheduled-jobs-selection-provider.service.d.ts.map +1 -0
- package/dist/services/selection-providers/list-of-scheduled-jobs-selection-provider.service.js +46 -0
- package/dist/services/selection-providers/list-of-scheduled-jobs-selection-provider.service.js.map +1 -0
- package/dist/services/selection-providers/locale-list-selection-provider.service.js.map +1 -1
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/short-url/tiny-url.service.js.map +1 -1
- package/dist/services/sms/Msg91BaseSMSService.d.ts +4 -3
- package/dist/services/sms/Msg91BaseSMSService.d.ts.map +1 -1
- package/dist/services/sms/Msg91BaseSMSService.js +3 -2
- package/dist/services/sms/Msg91BaseSMSService.js.map +1 -1
- package/dist/services/sms/Msg91OTPService.d.ts +2 -2
- package/dist/services/sms/Msg91OTPService.d.ts.map +1 -1
- package/dist/services/sms/Msg91OTPService.js +4 -4
- package/dist/services/sms/Msg91OTPService.js.map +1 -1
- package/dist/services/sms/Msg91SMSService.d.ts +2 -2
- package/dist/services/sms/Msg91SMSService.d.ts.map +1 -1
- package/dist/services/sms/Msg91SMSService.js +4 -4
- package/dist/services/sms/Msg91SMSService.js.map +1 -1
- package/dist/services/sms-template.service.js.map +1 -1
- package/dist/services/solid-introspect.service.d.ts +1 -0
- package/dist/services/solid-introspect.service.d.ts.map +1 -1
- package/dist/services/solid-introspect.service.js +14 -0
- package/dist/services/solid-introspect.service.js.map +1 -1
- package/dist/services/user-activity-history.service.js.map +1 -1
- package/dist/services/user-view-metadata.service.js.map +1 -1
- package/dist/services/user.service.js.map +1 -1
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +8 -10
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/services/whatsapp/Msg91WhatsappService.d.ts +2 -2
- package/dist/services/whatsapp/Msg91WhatsappService.d.ts.map +1 -1
- package/dist/services/whatsapp/Msg91WhatsappService.js +4 -4
- package/dist/services/whatsapp/Msg91WhatsappService.js.map +1 -1
- package/dist/solid-core-cli-db.module.js.map +1 -1
- package/dist/solid-core-cli.module.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +108 -65
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/audit.subscriber.js.map +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.d.ts +23 -0
- package/dist/subscribers/computed-entity-field.subscriber.d.ts.map +1 -0
- package/dist/subscribers/computed-entity-field.subscriber.js +95 -0
- package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -0
- package/dist/subscribers/created-by-updated-by.subscriber.js.map +1 -1
- package/dist/subscribers/field-metadata.subscriber.js.map +1 -1
- package/dist/subscribers/model-metadata.subscriber.js.map +1 -1
- package/dist/subscribers/security-rule.subscriber.js.map +1 -1
- package/dist/subscribers/soft-delete-aware-event.subscriber.js.map +1 -1
- package/dist/subscribers/view-metadata.subscriber.js.map +1 -1
- package/dist/transformers/array-transformer.js.map +1 -1
- package/dist/transformers/boolean-transformer.js.map +1 -1
- package/dist/transformers/datetime-transformer.js.map +1 -1
- package/dist/transformers/integer-transformer.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/validators/is-parsable-int.js.map +1 -1
- package/dist/winston.logger.js.map +1 -1
- package/package.json +3 -1
- package/src/# computed field pending issues.md +3 -0
- package/src/controllers/media-storage-provider-metadata.controller.ts +4 -1
- package/src/controllers/scheduled-job.controller.ts +93 -0
- package/src/controllers/{queues-test.controller.ts → test-queue.controller.ts} +12 -11
- package/src/decorators/scheduled-job-provider.decorator.ts +7 -0
- package/src/dtos/create-field-metadata.dto.ts +18 -0
- package/src/dtos/create-media-storage-provider-metadata.dto.ts +12 -7
- package/src/dtos/create-scheduled-job.dto.ts +65 -0
- package/src/dtos/update-scheduled-job.dto.ts +72 -0
- package/src/entities/field-metadata.entity.ts +4 -0
- package/src/entities/media-storage-provider-metadata.entity.ts +5 -1
- package/src/entities/scheduled-job.entity.ts +30 -0
- package/src/helpers/solid-registry.ts +67 -14
- package/src/index.ts +8 -0
- package/src/interfaces.ts +18 -0
- package/src/jobs/database/api-email-publisher-database.service.ts +24 -0
- package/src/jobs/database/api-email-queue-options-database.ts +9 -0
- package/src/jobs/database/api-email-subscriber-database.service.ts +30 -0
- package/src/jobs/database/computed-field-evaluation-publisher.service.ts +23 -0
- package/src/jobs/database/computed-field-evaluation-queue-options.ts +9 -0
- package/src/jobs/database/computed-field-evaluation-subscriber.service.ts +36 -0
- package/src/jobs/database/email-publisher-database.service.ts +23 -0
- package/src/jobs/database/email-queue-options-database.ts +10 -0
- package/src/jobs/database/email-subscriber-database.service.ts +30 -0
- package/src/jobs/database/{generate-code-publisher.service.ts → generate-code-publisher-database.service.ts} +2 -2
- package/src/jobs/database/{generate-code-subscriber.service.ts → generate-code-subscriber-database.service.ts} +3 -3
- package/src/jobs/database/otp-publisher-database.service.ts +23 -0
- package/src/jobs/database/otp-queue-options-database.ts +8 -0
- package/src/jobs/database/otp-subscriber-database.service.ts +30 -0
- package/src/jobs/database/sms-publisher-database.service.ts +23 -0
- package/src/jobs/database/sms-queue-database-options.ts +8 -0
- package/src/jobs/database/sms-subscriber-database.service.ts +30 -0
- package/src/jobs/database/test-queue-options-database.ts +9 -0
- package/src/jobs/database/{queue-test-db-publisher.service.ts → test-queue-publisher-database.service.ts} +2 -2
- package/src/jobs/database/{queue-test-db-subscriber.service.ts → test-queue-subscriber-database.service.ts} +3 -3
- package/src/jobs/database/whatsapp-publisher-database.service.ts +23 -0
- package/src/jobs/database/whatsapp-queue-options-database.ts +9 -0
- package/src/jobs/database/whatsapp-subscriber-database.service.ts +31 -0
- package/src/jobs/test-queue-options.ts +0 -1
- package/src/repository/field-metadata.repository.ts +26 -0
- package/src/repository/field.repository.ts +5 -2
- package/src/seeders/module-metadata-seeder.service.ts +30 -3
- package/src/seeders/seed-data/solid-core-metadata.json +559 -1
- package/src/seeders/system-fields-seeder.service.ts +3 -4
- package/src/services/action-metadata.service.ts +1 -1
- package/src/services/computed-fields/entity/concat-entity-computed-field-provider.service.ts +52 -0
- package/src/services/crud.service.ts +15 -6
- package/src/services/field-metadata.service.ts +38 -8
- package/src/services/file.service.ts +13 -6
- package/src/services/mail/ElasticEmailService.ts +6 -4
- package/src/services/mail/SMTPEmailService.ts +11 -5
- package/src/services/media.service.ts +9 -10
- package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +30 -9
- package/src/services/mediaStorageProviders/file-storage-provider.ts +5 -5
- package/src/services/mediaStorageProviders/index.ts +3 -3
- package/src/services/menu-item-metadata.service.ts +2 -2
- package/src/services/model-metadata.service.ts +14 -13
- package/src/services/mq-message-queue.service.ts +1 -1
- package/src/services/mq-message.service.ts +1 -1
- package/src/services/queues/database-subscriber.service.ts +1 -2
- package/src/services/queues/publisher-factory.service.ts +41 -0
- package/src/services/queues/rabbitmq-subscriber.service.ts +1 -1
- package/src/services/scheduled-job.service.ts +34 -0
- package/src/services/scheduled-jobs/scheduled-job.interface.ts +5 -0
- package/src/services/scheduled-jobs/scheduler.interface.ts +3 -0
- package/src/services/scheduled-jobs/scheduler.service.ts +165 -0
- package/src/services/selection-providers/list-of-scheduled-jobs-selection-provider.service.ts +40 -0
- package/src/services/sms/Msg91BaseSMSService.ts +5 -4
- package/src/services/sms/Msg91OTPService.ts +7 -7
- package/src/services/sms/Msg91SMSService.ts +5 -4
- package/src/services/solid-introspect.service.ts +23 -0
- package/src/services/view-metadata.service.ts +50 -52
- package/src/services/whatsapp/Msg91WhatsappService.ts +4 -3
- package/src/solid-core.module.ts +106 -63
- package/src/subscribers/computed-entity-field.subscriber.ts +108 -0
- package/tsconfig.json +1 -0
- package/dist/controllers/queues-test.controller.d.ts +0 -9
- package/dist/controllers/queues-test.controller.d.ts.map +0 -1
- package/dist/controllers/queues-test.controller.js.map +0 -1
- package/dist/jobs/database/generate-code-publisher.service.d.ts.map +0 -1
- package/dist/jobs/database/generate-code-publisher.service.js.map +0 -1
- package/dist/jobs/database/generate-code-queue-options.d.ts.map +0 -1
- package/dist/jobs/database/generate-code-queue-options.js.map +0 -1
- package/dist/jobs/database/generate-code-subscriber.service.d.ts.map +0 -1
- package/dist/jobs/database/generate-code-subscriber.service.js.map +0 -1
- package/dist/jobs/database/queue-test-db-publisher.service.d.ts.map +0 -1
- package/dist/jobs/database/queue-test-db-publisher.service.js.map +0 -1
- package/dist/jobs/database/queue-test-db-subscriber.service.d.ts.map +0 -1
- package/dist/jobs/database/queue-test-db-subscriber.service.js.map +0 -1
- package/dist/jobs/database/test-queue-db-options.d.ts.map +0 -1
- package/dist/jobs/database/test-queue-db-options.js.map +0 -1
- package/dist/jobs/queue-test-publisher.service.js.map +0 -1
- package/dist/jobs/queue-test-subscriber.service.js.map +0 -1
- package/src/jobs/database/test-queue-db-options.ts +0 -13
- package/src/services/user.service.ts.bkp +0 -311
- /package/src/jobs/database/{generate-code-queue-options.ts → generate-code-queue-options-database.ts} +0 -0
- /package/src/jobs/{queue-test-publisher.service.ts → test-queue-publisher.service.ts} +0 -0
- /package/src/jobs/{queue-test-subscriber.service.ts → test-queue-subscriber.service.ts} +0 -0
|
@@ -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.
|
|
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.
|
|
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,165 @@
|
|
|
1
|
+
import { Injectable, Logger, Inject } from '@nestjs/common';
|
|
2
|
+
import { InjectRepository } from '@nestjs/typeorm';
|
|
3
|
+
import { LessThanOrEqual, Repository } from 'typeorm';
|
|
4
|
+
|
|
5
|
+
import { ISchedulerService } from './scheduler.interface';
|
|
6
|
+
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
7
|
+
import { ScheduledJob } from 'src/entities/scheduled-job.entity';
|
|
8
|
+
import { IScheduledJob } from './scheduled-job.interface';
|
|
9
|
+
import { Cron, CronExpression } from '@nestjs/schedule';
|
|
10
|
+
|
|
11
|
+
@Injectable()
|
|
12
|
+
export class SchedulerServiceImpl implements ISchedulerService {
|
|
13
|
+
private readonly logger = new Logger(SchedulerServiceImpl.name);
|
|
14
|
+
|
|
15
|
+
constructor(
|
|
16
|
+
@InjectRepository(ScheduledJob)
|
|
17
|
+
private readonly scheduledJobRepo: Repository<ScheduledJob>,
|
|
18
|
+
private readonly solidRegistry: SolidRegistry,
|
|
19
|
+
) { }
|
|
20
|
+
|
|
21
|
+
// @Cron(CronExpression.EVERY_MINUTE)
|
|
22
|
+
// async runScheduledJobs(): Promise<void> {
|
|
23
|
+
// const now = new Date();
|
|
24
|
+
|
|
25
|
+
// const dueScheduledJobs = await this.scheduledJobRepo.find({
|
|
26
|
+
// where: {
|
|
27
|
+
// isActive: true,
|
|
28
|
+
// nextRunAt: LessThanOrEqual(now),
|
|
29
|
+
// },
|
|
30
|
+
// });
|
|
31
|
+
|
|
32
|
+
// for (const dueScheduledJob of dueScheduledJobs) {
|
|
33
|
+
// try {
|
|
34
|
+
// const jobName = dueScheduledJob.job;
|
|
35
|
+
// // @ts-ignore
|
|
36
|
+
// // const jobHandler = this.jobMap[jobName];
|
|
37
|
+
// // const jobHandler = '';
|
|
38
|
+
// const jobHandler: IScheduledJob | undefined = this.solidRegistry.getScheduledJobProviderInstance(jobName)
|
|
39
|
+
|
|
40
|
+
// if (!jobHandler) {
|
|
41
|
+
// this.logger.warn(`No job service found for: ${jobName}`);
|
|
42
|
+
// continue;
|
|
43
|
+
// }
|
|
44
|
+
|
|
45
|
+
// await jobHandler.executeReminder(dueScheduledJob);
|
|
46
|
+
|
|
47
|
+
// // Update nextRunAt and lastRunAt based on frequency
|
|
48
|
+
// dueScheduledJob.lastRunAt = now;
|
|
49
|
+
// dueScheduledJob.nextRunAt = this.computeNextRunAt(dueScheduledJob);
|
|
50
|
+
// await this.scheduledJobRepo.save(dueScheduledJob);
|
|
51
|
+
|
|
52
|
+
// this.logger.log(`Successfully ran job: ${jobName}`);
|
|
53
|
+
// } catch (err) {
|
|
54
|
+
// this.logger.error(`Failed to run job for reminder ${dueScheduledJob.id}`, err.stack);
|
|
55
|
+
// }
|
|
56
|
+
// }
|
|
57
|
+
// }
|
|
58
|
+
|
|
59
|
+
// private computeNextRunAt(reminder: ScheduledJob): Date {
|
|
60
|
+
// const now = new Date();
|
|
61
|
+
// switch (reminder.frequency) {
|
|
62
|
+
// case 'daily':
|
|
63
|
+
// return new Date(now.getTime() + 24 * 60 * 60 * 1000);
|
|
64
|
+
// case 'weekly':
|
|
65
|
+
// return new Date(now.getTime() + 7 * 24 * 60 * 60 * 1000);
|
|
66
|
+
// case 'monthly':
|
|
67
|
+
// return new Date(now.setMonth(now.getMonth() + 1));
|
|
68
|
+
// default:
|
|
69
|
+
// return new Date(now.getTime() + 24 * 60 * 60 * 1000); // default fallback
|
|
70
|
+
// }
|
|
71
|
+
// }
|
|
72
|
+
|
|
73
|
+
@Cron(CronExpression.EVERY_MINUTE)
|
|
74
|
+
async runScheduledJobs(): Promise<void> {
|
|
75
|
+
const now = new Date();
|
|
76
|
+
const dueJobs = await this.scheduledJobRepo.find({
|
|
77
|
+
where: {
|
|
78
|
+
isActive: true,
|
|
79
|
+
nextRunAt: LessThanOrEqual(now),
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
for (const job of dueJobs) {
|
|
84
|
+
try {
|
|
85
|
+
if (!this.shouldRunNow(job, now)) {
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const handler = this.solidRegistry.getScheduledJobProviderInstance(job.job);
|
|
90
|
+
if (!handler) {
|
|
91
|
+
this.logger.warn(`No job handler found for job: ${job.job}`);
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
await handler.executeReminder(job);
|
|
96
|
+
job.isActive = true;
|
|
97
|
+
job.lastRunAt = now;
|
|
98
|
+
job.nextRunAt = this.computeNextRunAt(job, now);
|
|
99
|
+
await this.scheduledJobRepo.save(job);
|
|
100
|
+
this.logger.log(`Successfully ran job: ${job.job}`);
|
|
101
|
+
} catch (err) {
|
|
102
|
+
this.logger.error(`Failed to run job ${job.job}`, err.stack);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
private shouldRunNow(job: ScheduledJob, now: Date): boolean {
|
|
108
|
+
const today = now.toISOString().split('T')[0]; // yyyy-mm-dd
|
|
109
|
+
const timeNow = now.toTimeString().slice(0, 5); // hh:mm
|
|
110
|
+
|
|
111
|
+
// 1. Check startDate / endDate
|
|
112
|
+
if (job.startDate && new Date(today) < new Date(job.startDate)) return false;
|
|
113
|
+
if (job.endDate && new Date(today) > new Date(job.endDate)) return false;
|
|
114
|
+
|
|
115
|
+
// 2. Check startTime / endTime
|
|
116
|
+
if (job.startTime) {
|
|
117
|
+
const jobStart = job.startTime.toTimeString().slice(0, 5);
|
|
118
|
+
if (timeNow < jobStart) return false;
|
|
119
|
+
}
|
|
120
|
+
if (job.endTime) {
|
|
121
|
+
const jobEnd = job.endTime.toTimeString().slice(0, 5);
|
|
122
|
+
if (timeNow > jobEnd) return false;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// 3. Check dayOfWeek (for weekly)
|
|
126
|
+
if (job.frequency.toLowerCase() === 'weekly' && job.dayOfWeek) {
|
|
127
|
+
const todayName = now.toLocaleString('en-US', { weekday: 'long' }); // e.g., "Monday"
|
|
128
|
+
// const days = job.dayOfWeek.split(',').map(d => d.trim());
|
|
129
|
+
const days = JSON.parse(job.dayOfWeek) as string[];
|
|
130
|
+
if (!days.includes(todayName)) return false;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// 4. Check dayOfMonth (for monthly)
|
|
134
|
+
if (job.frequency.toLowerCase() === 'monthly' && job.dayOfMonth) {
|
|
135
|
+
const dom = now.getDate();
|
|
136
|
+
if (dom !== job.dayOfMonth) return false;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return true;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
private computeNextRunAt(job: ScheduledJob, from: Date): Date {
|
|
143
|
+
const base = new Date(from);
|
|
144
|
+
|
|
145
|
+
switch (job.frequency.toLowerCase()) {
|
|
146
|
+
case 'once':
|
|
147
|
+
return null; // don't reschedule
|
|
148
|
+
case 'hourly':
|
|
149
|
+
return new Date(base.getTime() + 60 * 60 * 1000);
|
|
150
|
+
case 'daily':
|
|
151
|
+
return new Date(base.getTime() + 24 * 60 * 60 * 1000);
|
|
152
|
+
case 'weekly':
|
|
153
|
+
return new Date(base.getTime() + 7 * 24 * 60 * 60 * 1000);
|
|
154
|
+
case 'monthly':
|
|
155
|
+
const next = new Date(base);
|
|
156
|
+
next.setMonth(base.getMonth() + 1);
|
|
157
|
+
return next;
|
|
158
|
+
case 'custom':
|
|
159
|
+
// Optional: let job handler decide via metadata or registry
|
|
160
|
+
return new Date(base.getTime() + 24 * 60 * 60 * 1000);
|
|
161
|
+
default:
|
|
162
|
+
return new Date(base.getTime() + 24 * 60 * 60 * 1000);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Injectable } from "@nestjs/common";
|
|
2
|
+
import { SelectionProvider } from "src/decorators/selection-provider.decorator";
|
|
3
|
+
import { ISelectionProvider, ISelectionProviderContext, ISelectionProviderValues } from "../../interfaces";
|
|
4
|
+
import { SolidRegistry } from "src/helpers/solid-registry";
|
|
5
|
+
import { IScheduledJob } from "../scheduled-jobs/scheduled-job.interface";
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@SelectionProvider()
|
|
9
|
+
@Injectable()
|
|
10
|
+
export class ListOfScheduledJobsSelectionProvider implements ISelectionProvider<ISelectionProviderContext> {
|
|
11
|
+
|
|
12
|
+
constructor(
|
|
13
|
+
private readonly solidRegistry: SolidRegistry,
|
|
14
|
+
) {
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
help(): string {
|
|
18
|
+
return "# Allows one to dynamically fetch all scheduled jobs";
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
name(): string {
|
|
22
|
+
return 'ListOfScheduledJobsSelectionProvider';
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
async value(optionValue: string, ctxt: ISelectionProviderContext): Promise<ISelectionProviderValues | any> {
|
|
26
|
+
const jobHandler: IScheduledJob | undefined = this.solidRegistry.getScheduledJobProviderInstance(optionValue);
|
|
27
|
+
if (!jobHandler) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return { label: optionValue, value: optionValue };
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
async values(query: string, ctxt: ISelectionProviderContext): Promise<readonly ISelectionProviderValues[]> {
|
|
35
|
+
const scheduledJobs = this.solidRegistry.getScheduledJobProviders()
|
|
36
|
+
return scheduledJobs.map(i => {
|
|
37
|
+
return { label: i.name, value: i.name };
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -2,17 +2,17 @@ import { Logger } from "@nestjs/common";
|
|
|
2
2
|
import { ConfigType } from "@nestjs/config";
|
|
3
3
|
import Handlebars from "handlebars";
|
|
4
4
|
import commonConfig from "src/config/common.config";
|
|
5
|
-
import { SmsQueuePublisher } from "src/jobs/sms-publisher.service";
|
|
6
5
|
import { QueueMessage } from "src/interfaces/mq";
|
|
7
6
|
import { SmsTemplateService } from "../sms-template.service";
|
|
8
|
-
import { RabbitMqPublisher } from "src/services/queues/rabbitmq-publisher.service";
|
|
9
7
|
import { ISMS } from "../../interfaces";
|
|
8
|
+
import { PublisherFactory } from "../queues/publisher-factory.service";
|
|
10
9
|
|
|
11
10
|
export abstract class Msg91BaseSMSService implements ISMS {
|
|
12
11
|
protected readonly logger = new Logger(Msg91BaseSMSService.name);
|
|
13
12
|
constructor(
|
|
14
13
|
protected readonly commonConfiguration: ConfigType<typeof commonConfig>,
|
|
15
|
-
protected readonly smsPublisher:
|
|
14
|
+
protected readonly smsPublisher: string,
|
|
15
|
+
protected readonly publisherFactory: PublisherFactory<any>,
|
|
16
16
|
protected readonly smsTemplateService: SmsTemplateService,
|
|
17
17
|
) { }
|
|
18
18
|
|
|
@@ -71,7 +71,8 @@ export abstract class Msg91BaseSMSService implements ISMS {
|
|
|
71
71
|
async sendSMSAsynchronously(message) {
|
|
72
72
|
const { to } = message.payload;
|
|
73
73
|
// this.notificationPublisherService.publish(message);
|
|
74
|
-
this.smsPublisher.publish(message);
|
|
74
|
+
// this.smsPublisher.publish(message);
|
|
75
|
+
this.publisherFactory.publish(message, this.smsPublisher);
|
|
75
76
|
this.logger.debug(`Queueing SMS to ${to} with message ${JSON.stringify(message)}`);
|
|
76
77
|
}
|
|
77
78
|
|
|
@@ -2,12 +2,11 @@ import { HttpService } from "@nestjs/axios";
|
|
|
2
2
|
import { Inject, Injectable } from "@nestjs/common";
|
|
3
3
|
import { ConfigType } from "@nestjs/config";
|
|
4
4
|
import commonConfig from "src/config/common.config";
|
|
5
|
-
import { SmsQueuePublisher } from "src/jobs/sms-publisher.service";
|
|
6
5
|
import { QueueMessage } from "src/interfaces/mq";
|
|
7
6
|
import { SmsTemplateService } from "../sms-template.service";
|
|
8
7
|
import { Msg91BaseSMSService } from "./Msg91BaseSMSService";
|
|
9
|
-
import { OTPQueuePublisher } from "src/jobs/otp-publisher.service";
|
|
10
8
|
import { ISMS } from "../../interfaces";
|
|
9
|
+
import { PublisherFactory } from "../queues/publisher-factory.service";
|
|
11
10
|
|
|
12
11
|
interface OtpParams {
|
|
13
12
|
otp: string,
|
|
@@ -21,16 +20,17 @@ export class Msg91OTPService extends Msg91BaseSMSService implements ISMS {
|
|
|
21
20
|
constructor(
|
|
22
21
|
@Inject(commonConfig.KEY)
|
|
23
22
|
commonConfiguration: ConfigType<typeof commonConfig>,
|
|
24
|
-
smsPublisher: OTPQueuePublisher,
|
|
23
|
+
// smsPublisher: OTPQueuePublisher,
|
|
24
|
+
publisherFactory: PublisherFactory<any>,
|
|
25
25
|
smsTemplateService: SmsTemplateService,
|
|
26
26
|
private readonly httpService: HttpService,
|
|
27
27
|
) {
|
|
28
|
-
super(
|
|
29
|
-
|
|
28
|
+
super(commonConfiguration, 'OTPQueuePublisher', publisherFactory, smsTemplateService);
|
|
29
|
+
}
|
|
30
30
|
|
|
31
31
|
async sendSMSSynchronously(message: QueueMessage<any>): Promise<void> {
|
|
32
32
|
const { to, templateId, otp } = message.payload;
|
|
33
|
-
const params = {otp, template_id: templateId, mobile: to, authkey: this.commonConfiguration.msg91Sms.apiKey}
|
|
33
|
+
const params = { otp, template_id: templateId, mobile: to, authkey: this.commonConfiguration.msg91Sms.apiKey }
|
|
34
34
|
const otpUrl = `${this.commonConfiguration.msg91Sms.url}/otp?${this.paramsToQueryString(params)}`;
|
|
35
35
|
await this.httpService.axiosRef.post(otpUrl, {});
|
|
36
36
|
this.logger.debug(`Sending OTP to ${to} with url ${otpUrl}`);
|
|
@@ -42,7 +42,7 @@ export class Msg91OTPService extends Msg91BaseSMSService implements ISMS {
|
|
|
42
42
|
for (const key of paramKeys) {
|
|
43
43
|
qsArray.push(`${key}=${encodeURIComponent(params[key])}`)
|
|
44
44
|
}
|
|
45
|
-
const qs =
|
|
45
|
+
const qs = qsArray.join("&");
|
|
46
46
|
return qs;
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -2,23 +2,24 @@ import { HttpService } from "@nestjs/axios";
|
|
|
2
2
|
import { Inject, Injectable } from "@nestjs/common";
|
|
3
3
|
import { ConfigType } from "@nestjs/config";
|
|
4
4
|
import commonConfig from "src/config/common.config";
|
|
5
|
-
import { SmsQueuePublisher } from "src/jobs/sms-publisher.service";
|
|
6
5
|
import { QueueMessage } from "src/interfaces/mq";
|
|
7
6
|
import { SmsTemplateService } from "../sms-template.service";
|
|
8
7
|
import { Msg91BaseSMSService } from "./Msg91BaseSMSService";
|
|
9
8
|
import { ISMS } from "../../interfaces";
|
|
9
|
+
import { PublisherFactory } from "../queues/publisher-factory.service";
|
|
10
10
|
|
|
11
11
|
@Injectable()
|
|
12
12
|
export class Msg91SMSService extends Msg91BaseSMSService implements ISMS {
|
|
13
13
|
constructor(
|
|
14
14
|
@Inject(commonConfig.KEY)
|
|
15
15
|
commonConfiguration: ConfigType<typeof commonConfig>,
|
|
16
|
-
smsPublisher: SmsQueuePublisher,
|
|
16
|
+
// smsPublisher: SmsQueuePublisher,
|
|
17
|
+
publisherFactory: PublisherFactory<any>,
|
|
17
18
|
smsTemplateService: SmsTemplateService,
|
|
18
19
|
private readonly httpService: HttpService,
|
|
19
20
|
) {
|
|
20
|
-
super(
|
|
21
|
-
|
|
21
|
+
super(commonConfiguration, 'SmsQueuePublisher', publisherFactory, smsTemplateService)
|
|
22
|
+
}
|
|
22
23
|
|
|
23
24
|
async sendSMSSynchronously(message: QueueMessage<any>): Promise<void> {
|
|
24
25
|
const { to, templateId, ...templateParams } = message.payload;
|
|
@@ -7,6 +7,7 @@ import { IS_SELECTION_PROVIDER } from 'src/decorators/selection-provider.decorat
|
|
|
7
7
|
import { IS_SOLID_DATABASE_MODULE } from 'src/decorators/solid-database-module.decorator';
|
|
8
8
|
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
9
9
|
import { CRUDService } from './crud.service';
|
|
10
|
+
import { IS_SCHEDULED_JOB_PROVIDER } from 'src/decorators/scheduled-job-provider.decorator';
|
|
10
11
|
|
|
11
12
|
@Injectable()
|
|
12
13
|
export class SolidIntrospectService implements OnApplicationBootstrap {
|
|
@@ -81,6 +82,16 @@ export class SolidIntrospectService implements OnApplicationBootstrap {
|
|
|
81
82
|
.filter((provider) => this.isModule(provider));
|
|
82
83
|
this.solidRegistry.registerModules(allModules);
|
|
83
84
|
|
|
85
|
+
// Register all IScheduledJob implementations
|
|
86
|
+
const scheduledJobProviders = this.discoveryService
|
|
87
|
+
.getProviders()
|
|
88
|
+
.filter((provider) => this.isScheduledJobProvider(provider));
|
|
89
|
+
|
|
90
|
+
scheduledJobProviders.forEach((scheduledJobProvider) => {
|
|
91
|
+
// @ts-ignore
|
|
92
|
+
this.solidRegistry.registerScheduledJobProvider(scheduledJobProvider);
|
|
93
|
+
});
|
|
94
|
+
|
|
84
95
|
}
|
|
85
96
|
|
|
86
97
|
// This method identifies a provider as a seeder if it has a seed method i.e duck typing
|
|
@@ -119,6 +130,18 @@ export class SolidIntrospectService implements OnApplicationBootstrap {
|
|
|
119
130
|
return !!isComputedFieldProvider;
|
|
120
131
|
}
|
|
121
132
|
|
|
133
|
+
private isScheduledJobProvider(provider: InstanceWrapper) {
|
|
134
|
+
const { instance } = provider;
|
|
135
|
+
if (!instance) return false;
|
|
136
|
+
|
|
137
|
+
const isScheduledJobProvider = this.reflector.get<boolean>(
|
|
138
|
+
IS_SCHEDULED_JOB_PROVIDER,
|
|
139
|
+
instance.constructor,
|
|
140
|
+
);
|
|
141
|
+
|
|
142
|
+
return !!isScheduledJobProvider;
|
|
143
|
+
}
|
|
144
|
+
|
|
122
145
|
private isSolidDatabaseModule(provider: InstanceWrapper) {
|
|
123
146
|
const { instance } = provider;
|
|
124
147
|
if (!instance) return false;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Logger } from '@nestjs/common';
|
|
2
|
-
import { BadRequestException, Injectable } from '@nestjs/common';
|
|
1
|
+
import { BadRequestException, Injectable, Logger } from '@nestjs/common';
|
|
3
2
|
import { ConfigService } from '@nestjs/config';
|
|
4
3
|
import { DiscoveryService, ModuleRef } from "@nestjs/core";
|
|
5
4
|
import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';
|
|
@@ -11,17 +10,16 @@ import { ModuleMetadataService } from 'src/services/module-metadata.service';
|
|
|
11
10
|
import { EntityManager, Repository } from 'typeorm';
|
|
12
11
|
|
|
13
12
|
|
|
13
|
+
import { classify } from '@angular-devkit/core/src/utils/strings';
|
|
14
|
+
import { Locale } from 'src/entities/locale.entity';
|
|
15
|
+
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
14
16
|
import { UpdateViewMetadataDto } from '../dtos/update-view-metadata.dto';
|
|
15
17
|
import { FieldMetadata } from '../entities/field-metadata.entity';
|
|
16
18
|
import { ModelMetadata } from '../entities/model-metadata.entity';
|
|
17
19
|
import { ViewMetadata } from '../entities/view-metadata.entity';
|
|
18
20
|
import { ActionMetadataService } from './action-metadata.service';
|
|
19
21
|
import { SolidIntrospectService } from './solid-introspect.service';
|
|
20
|
-
import { BasicFilterDto } from 'src/dtos/basic-filters.dto';
|
|
21
22
|
import { UserViewMetadataService } from './user-view-metadata.service';
|
|
22
|
-
import { Locale } from 'src/entities/locale.entity';
|
|
23
|
-
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
24
|
-
import { classify } from '@angular-devkit/core/src/utils/strings';
|
|
25
23
|
|
|
26
24
|
@Injectable()
|
|
27
25
|
export class ViewMetadataService extends CRUDService<ViewMetadata> {
|
|
@@ -45,7 +43,7 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
|
|
|
45
43
|
private readonly modelMetadataRepo: Repository<ModelMetadata>,
|
|
46
44
|
readonly moduleRef: ModuleRef
|
|
47
45
|
) {
|
|
48
|
-
super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'viewMetadata', '
|
|
46
|
+
super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'viewMetadata', 'solid-core', moduleRef);
|
|
49
47
|
}
|
|
50
48
|
|
|
51
49
|
private readonly logger = new Logger(ViewMetadataService.name);
|
|
@@ -57,60 +55,60 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
|
|
|
57
55
|
defaultEntityLocaleIdFromQuery?: string
|
|
58
56
|
): Promise<{ records: any[], defaultEntityLocaleId: string | null }> {
|
|
59
57
|
const solidRegistry = await this.moduleRef.get(SolidRegistry, { strict: false });
|
|
60
|
-
const currentEntityTarget = solidRegistry.getEntityTarget(this.entityManager, classify(modelName));
|
|
61
|
-
const currentEntityRepository = this.entityManager.getRepository(
|
|
58
|
+
// const currentEntityTarget = solidRegistry.getEntityTarget(this.entityManager, classify(modelName));
|
|
59
|
+
const currentEntityRepository = this.entityManager.getRepository(classify(modelName));
|
|
62
60
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
61
|
+
// Case 1: Creating a new record with no defaultEntityLocaleId to clone
|
|
62
|
+
if (id === 'new' && !defaultEntityLocaleIdFromQuery) {
|
|
63
|
+
this.logger.debug(`Creating new record without cloning from any defaultEntityLocaleId.`);
|
|
64
|
+
return { records: [], defaultEntityLocaleId: null };
|
|
65
|
+
}
|
|
68
66
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
// Case 2: Creating a new record and cloning from an existing defaultEntityLocaleId
|
|
68
|
+
if (id === 'new' && defaultEntityLocaleIdFromQuery) {
|
|
69
|
+
this.logger.debug(`Creating new record by cloning translations from defaultEntityLocaleId: ${defaultEntityLocaleIdFromQuery}`);
|
|
72
70
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
71
|
+
const records = await currentEntityRepository.find({
|
|
72
|
+
where: [
|
|
73
|
+
{ defaultEntityLocaleId: defaultEntityLocaleIdFromQuery },
|
|
74
|
+
{ id: defaultEntityLocaleIdFromQuery }
|
|
75
|
+
]
|
|
76
|
+
});
|
|
79
77
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
78
|
+
this.logger.debug(`Found ${records.length} cloned records for new entity.`);
|
|
79
|
+
return { records, defaultEntityLocaleId: defaultEntityLocaleIdFromQuery };
|
|
80
|
+
}
|
|
83
81
|
|
|
84
|
-
|
|
85
|
-
|
|
82
|
+
// Case 3: Editing an existing entity
|
|
83
|
+
const entityRecord = await currentEntityRepository.findOne({ where: { id } });
|
|
86
84
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
85
|
+
if (!entityRecord) {
|
|
86
|
+
this.logger.warn(`No entity found for id ${id}`);
|
|
87
|
+
return { records: [], defaultEntityLocaleId: null };
|
|
88
|
+
}
|
|
91
89
|
|
|
92
|
-
|
|
90
|
+
const defaultLocale = await this.entityManager.getRepository(Locale).findOne({ where: { isDefault: true } });
|
|
93
91
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
92
|
+
let defaultEntityLocaleId: string;
|
|
93
|
+
if (entityRecord.localeName === defaultLocale?.locale) {
|
|
94
|
+
defaultEntityLocaleId = entityRecord.id;
|
|
95
|
+
this.logger.debug(`Editing default locale record with id ${defaultEntityLocaleId}`);
|
|
96
|
+
} else {
|
|
97
|
+
defaultEntityLocaleId = entityRecord.defaultEntityLocaleId;
|
|
98
|
+
this.logger.debug(`Editing non-default locale record. DefaultEntityLocaleId: ${defaultEntityLocaleId}`);
|
|
99
|
+
}
|
|
102
100
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
101
|
+
const records = await currentEntityRepository.find({
|
|
102
|
+
where: [
|
|
103
|
+
{ defaultEntityLocaleId: defaultEntityLocaleId },
|
|
104
|
+
{ id: defaultEntityLocaleId }
|
|
105
|
+
]
|
|
106
|
+
});
|
|
109
107
|
|
|
110
|
-
|
|
108
|
+
this.logger.debug(`Found ${records.length} records in all locales for existing entity.`);
|
|
111
109
|
|
|
112
|
-
|
|
113
|
-
}
|
|
110
|
+
return { records, defaultEntityLocaleId };
|
|
111
|
+
}
|
|
114
112
|
|
|
115
113
|
// START: Custom Service Methods
|
|
116
114
|
async getLayout(query, activeUser) {
|
|
@@ -311,10 +309,10 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
|
|
|
311
309
|
// }
|
|
312
310
|
// }
|
|
313
311
|
// }
|
|
314
|
-
if(entity.model.internationalisation){
|
|
312
|
+
if (entity.model.internationalisation) {
|
|
315
313
|
const defaultEntityLocaleIdFromQuery = query?.defaultEntityLocaleId;
|
|
316
314
|
const { records: entityRecordsInAllLocales, defaultEntityLocaleId } =
|
|
317
|
-
|
|
315
|
+
await this.getEntityRecordsInAllLocales(modelName, id, defaultEntityLocaleIdFromQuery);
|
|
318
316
|
const allLocales = await this.entityManager.getRepository(Locale).find({});
|
|
319
317
|
for (const locale of allLocales) {
|
|
320
318
|
const matchingRecord = entityRecordsInAllLocales.find(record => record.localeName === locale.locale);
|
|
@@ -2,11 +2,11 @@ import { HttpService } from '@nestjs/axios';
|
|
|
2
2
|
import { Inject, Injectable, Logger } from '@nestjs/common';
|
|
3
3
|
import { ConfigType } from '@nestjs/config';
|
|
4
4
|
import commonConfig from 'src/config/common.config';
|
|
5
|
-
import { WhatsappQueuePublisher } from 'src/jobs/whatsapp-publisher.service';
|
|
6
5
|
import { QueueMessage } from 'src/interfaces/mq';
|
|
7
6
|
import { SmsTemplateService } from '../sms-template.service';
|
|
8
7
|
import { Msg91BaseSMSService } from '../sms/Msg91BaseSMSService';
|
|
9
8
|
import { ISMS } from "../../interfaces";
|
|
9
|
+
import { PublisherFactory } from '../queues/publisher-factory.service';
|
|
10
10
|
|
|
11
11
|
enum Msg91WhatsappParameterHeaderType {
|
|
12
12
|
image,
|
|
@@ -57,11 +57,12 @@ export class Msg91WhatsappService extends Msg91BaseSMSService implements ISMS {
|
|
|
57
57
|
constructor(
|
|
58
58
|
@Inject(commonConfig.KEY)
|
|
59
59
|
commonConfiguration: ConfigType<typeof commonConfig>,
|
|
60
|
-
whatsappPublisher: WhatsappQueuePublisher,
|
|
60
|
+
// whatsappPublisher: WhatsappQueuePublisher,
|
|
61
|
+
publisherFactory: PublisherFactory<any>,
|
|
61
62
|
smsTemplateService: SmsTemplateService,
|
|
62
63
|
private readonly httpService: HttpService,
|
|
63
64
|
) {
|
|
64
|
-
super(commonConfiguration,
|
|
65
|
+
super(commonConfiguration, 'WhatsappQueuePublisher', publisherFactory, smsTemplateService);
|
|
65
66
|
}
|
|
66
67
|
|
|
67
68
|
async sendSMSSynchronously(message: QueueMessage<any>): Promise<void> {
|