@solidstarters/solid-core 1.2.125 → 1.2.128
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.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 +2 -2
- 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.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 +5 -0
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js +16 -0
- 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.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.js.map +1 -1
- package/dist/jobs/database/computed-field-evaluation-queue-options.js.map +1 -1
- package/dist/jobs/database/computed-field-evaluation-subscriber.service.js.map +1 -1
- 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.js.map +1 -1
- 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 +545 -0
- package/dist/seeders/sms-template-seeder.service.js.map +1 -1
- 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 +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.js.map +1 -1
- 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.map +1 -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.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 +7 -8
- 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 +48 -15
- 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.js.map +1 -1
- 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/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-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/common.entity.ts +2 -2
- 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 +21 -1
- package/src/index.ts +8 -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/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/seeders/module-metadata-seeder.service.ts +30 -3
- package/src/seeders/seed-data/solid-core-metadata.json +545 -0
- package/src/services/action-metadata.service.ts +1 -1
- package/src/services/authentication.service.ts +1 -1
- package/src/services/crud.service.ts +6 -5
- 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 +48 -50
- package/src/services/whatsapp/Msg91WhatsappService.ts +4 -3
- package/src/solid-core.module.ts +46 -13
- 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,14 +1,14 @@
|
|
|
1
1
|
import { Inject, Injectable, Logger } from '@nestjs/common';
|
|
2
2
|
import { ConfigType } from '@nestjs/config';
|
|
3
|
-
import 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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
-
|
|
32
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
|
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
|
-
|
|
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}
|
|
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
|
|
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}
|
|
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;
|
|
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
|
|
822
|
-
name:
|
|
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:
|
|
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:
|
|
837
|
+
name: menuName,
|
|
837
838
|
sequenceNumber: 1,
|
|
838
|
-
actionUserKey:
|
|
839
|
+
actionUserKey: actionName,
|
|
839
840
|
moduleUserKey: `${model.module.name}`,
|
|
840
841
|
parentMenuItemUserKey: ""
|
|
841
842
|
};
|
|
842
843
|
|
|
843
844
|
const modelListview = {
|
|
844
|
-
name:
|
|
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:
|
|
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', '
|
|
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', '
|
|
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.
|
|
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
|
+
}
|