@solidstarters/solid-core 1.2.189 → 1.2.192
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/config/iam.config.d.ts +6 -4
- package/dist/config/iam.config.d.ts.map +1 -1
- package/dist/config/iam.config.js +3 -2
- package/dist/config/iam.config.js.map +1 -1
- package/dist/constants/error-messages.d.ts +2 -0
- package/dist/constants/error-messages.d.ts.map +1 -1
- package/dist/constants/error-messages.js +2 -0
- package/dist/constants/error-messages.js.map +1 -1
- package/dist/controllers/authentication.controller.d.ts +1 -1
- package/dist/controllers/authentication.controller.d.ts.map +1 -1
- package/dist/controllers/authentication.controller.js +4 -3
- package/dist/controllers/authentication.controller.js.map +1 -1
- package/dist/controllers/email-template.controller.d.ts.map +1 -1
- package/dist/controllers/email-template.controller.js +8 -8
- package/dist/controllers/email-template.controller.js.map +1 -1
- package/dist/controllers/export-template.controller.d.ts +2 -1
- package/dist/controllers/export-template.controller.d.ts.map +1 -1
- package/dist/controllers/export-template.controller.js +5 -3
- package/dist/controllers/export-template.controller.js.map +1 -1
- package/dist/controllers/import-transaction.controller.d.ts +2 -1
- package/dist/controllers/import-transaction.controller.d.ts.map +1 -1
- package/dist/controllers/import-transaction.controller.js +6 -3
- package/dist/controllers/import-transaction.controller.js.map +1 -1
- package/dist/controllers/sms-template.controller.d.ts.map +1 -1
- package/dist/controllers/sms-template.controller.js +7 -7
- package/dist/controllers/sms-template.controller.js.map +1 -1
- package/dist/decorators/active-user.decorator.d.ts +1 -1
- package/dist/decorators/security-rule-config-provider.decorator.d.ts +3 -0
- package/dist/decorators/security-rule-config-provider.decorator.d.ts.map +1 -0
- package/dist/decorators/security-rule-config-provider.decorator.js +11 -0
- package/dist/decorators/security-rule-config-provider.decorator.js.map +1 -0
- package/dist/decorators/solid-password.decorator.d.ts +5 -1
- package/dist/decorators/solid-password.decorator.d.ts.map +1 -1
- package/dist/decorators/solid-password.decorator.js +18 -6
- package/dist/decorators/solid-password.decorator.js.map +1 -1
- package/dist/dtos/change-password.dto.js +1 -1
- package/dist/dtos/change-password.dto.js.map +1 -1
- package/dist/dtos/confirm-forgot-password.dto.js +1 -1
- package/dist/dtos/confirm-forgot-password.dto.js.map +1 -1
- package/dist/dtos/create-saved-filters.dto.d.ts +1 -0
- package/dist/dtos/create-saved-filters.dto.d.ts.map +1 -1
- package/dist/dtos/create-saved-filters.dto.js +7 -1
- package/dist/dtos/create-saved-filters.dto.js.map +1 -1
- package/dist/dtos/create-security-rule.dto.d.ts +1 -0
- package/dist/dtos/create-security-rule.dto.d.ts.map +1 -1
- package/dist/dtos/create-security-rule.dto.js +7 -1
- package/dist/dtos/create-security-rule.dto.js.map +1 -1
- package/dist/dtos/update-saved-filters.dto.d.ts +1 -0
- package/dist/dtos/update-saved-filters.dto.d.ts.map +1 -1
- package/dist/dtos/update-saved-filters.dto.js +7 -1
- package/dist/dtos/update-saved-filters.dto.js.map +1 -1
- package/dist/dtos/update-security-rule.dto.d.ts +1 -0
- package/dist/dtos/update-security-rule.dto.d.ts.map +1 -1
- package/dist/dtos/update-security-rule.dto.js +7 -1
- package/dist/dtos/update-security-rule.dto.js.map +1 -1
- package/dist/entities/field-metadata.entity.d.ts.map +1 -1
- package/dist/entities/field-metadata.entity.js +2 -1
- package/dist/entities/field-metadata.entity.js.map +1 -1
- package/dist/entities/saved-filters.entity.d.ts +1 -0
- package/dist/entities/saved-filters.entity.d.ts.map +1 -1
- package/dist/entities/saved-filters.entity.js +6 -2
- package/dist/entities/saved-filters.entity.js.map +1 -1
- package/dist/entities/security-rule.entity.d.ts +1 -0
- package/dist/entities/security-rule.entity.d.ts.map +1 -1
- package/dist/entities/security-rule.entity.js +5 -1
- package/dist/entities/security-rule.entity.js.map +1 -1
- package/dist/helpers/model-metadata-helper.service.d.ts +2 -3
- package/dist/helpers/model-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/model-metadata-helper.service.js +2 -8
- package/dist/helpers/model-metadata-helper.service.js.map +1 -1
- package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/module-metadata-helper.service.js +9 -0
- package/dist/helpers/module-metadata-helper.service.js.map +1 -1
- package/dist/helpers/solid-registry.d.ts +5 -1
- 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/helpers/user-helper.d.ts +2 -0
- package/dist/helpers/user-helper.d.ts.map +1 -0
- package/dist/helpers/user-helper.js +41 -0
- package/dist/helpers/user-helper.js.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +6 -0
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/jobs/trigger-mcp-client-subscriber.service.d.ts +2 -2
- package/dist/jobs/trigger-mcp-client-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/trigger-mcp-client-subscriber.service.js +2 -2
- package/dist/jobs/trigger-mcp-client-subscriber.service.js.map +1 -1
- package/dist/jobs/twilio-sms-subscriber.service.d.ts +2 -2
- package/dist/jobs/twilio-sms-subscriber.service.d.ts.map +1 -1
- package/dist/jobs/twilio-sms-subscriber.service.js +2 -2
- package/dist/jobs/twilio-sms-subscriber.service.js.map +1 -1
- package/dist/repository/action-metadata.repository.d.ts +12 -0
- package/dist/repository/action-metadata.repository.d.ts.map +1 -0
- package/dist/repository/action-metadata.repository.js +34 -0
- package/dist/repository/action-metadata.repository.js.map +1 -0
- package/dist/repository/ai-interaction.repository.d.ts +12 -0
- package/dist/repository/ai-interaction.repository.d.ts.map +1 -0
- package/dist/repository/ai-interaction.repository.js +34 -0
- package/dist/repository/ai-interaction.repository.js.map +1 -0
- package/dist/repository/chatter-message-details.repository.d.ts +1 -1
- package/dist/repository/chatter-message-details.repository.d.ts.map +1 -1
- package/dist/repository/chatter-message-details.repository.js +2 -2
- package/dist/repository/chatter-message-details.repository.js.map +1 -1
- package/dist/repository/chatter-message.repository.d.ts +1 -1
- package/dist/repository/chatter-message.repository.d.ts.map +1 -1
- package/dist/repository/chatter-message.repository.js +2 -2
- package/dist/repository/chatter-message.repository.js.map +1 -1
- package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts +12 -0
- package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts.map +1 -0
- package/dist/repository/dashboard-question-sql-dataset-config.repository.js +34 -0
- package/dist/repository/dashboard-question-sql-dataset-config.repository.js.map +1 -0
- package/dist/repository/dashboard-question.repository.d.ts +12 -0
- package/dist/repository/dashboard-question.repository.d.ts.map +1 -0
- package/dist/repository/dashboard-question.repository.js +34 -0
- package/dist/repository/dashboard-question.repository.js.map +1 -0
- package/dist/repository/dashboard-variable.repository.d.ts +12 -0
- package/dist/repository/dashboard-variable.repository.d.ts.map +1 -0
- package/dist/repository/dashboard-variable.repository.js +34 -0
- package/dist/repository/dashboard-variable.repository.js.map +1 -0
- package/dist/repository/dashboard.repository.d.ts +9 -5
- package/dist/repository/dashboard.repository.d.ts.map +1 -1
- package/dist/repository/dashboard.repository.js +11 -5
- package/dist/repository/dashboard.repository.js.map +1 -1
- package/dist/repository/email-template.repository.d.ts +12 -0
- package/dist/repository/email-template.repository.d.ts.map +1 -0
- package/dist/repository/email-template.repository.js +34 -0
- package/dist/repository/email-template.repository.js.map +1 -0
- package/dist/repository/export-template.repository.d.ts +12 -0
- package/dist/repository/export-template.repository.d.ts.map +1 -0
- package/dist/repository/export-template.repository.js +34 -0
- package/dist/repository/export-template.repository.js.map +1 -0
- package/dist/repository/export-transaction.repository.d.ts +12 -0
- package/dist/repository/export-transaction.repository.d.ts.map +1 -0
- package/dist/repository/export-transaction.repository.js +34 -0
- package/dist/repository/export-transaction.repository.js.map +1 -0
- package/dist/repository/field-metadata.repository.d.ts +4 -3
- package/dist/repository/field-metadata.repository.d.ts.map +1 -1
- package/dist/repository/field-metadata.repository.js +5 -5
- package/dist/repository/field-metadata.repository.js.map +1 -1
- package/dist/repository/import-transaction-error-log.repository.d.ts +12 -0
- package/dist/repository/import-transaction-error-log.repository.d.ts.map +1 -0
- package/dist/repository/import-transaction-error-log.repository.js +34 -0
- package/dist/repository/import-transaction-error-log.repository.js.map +1 -0
- package/dist/repository/import-transaction.repository.d.ts +12 -0
- package/dist/repository/import-transaction.repository.d.ts.map +1 -0
- package/dist/repository/import-transaction.repository.js +34 -0
- package/dist/repository/import-transaction.repository.js.map +1 -0
- package/dist/repository/list-of-values.repository.d.ts +12 -0
- package/dist/repository/list-of-values.repository.d.ts.map +1 -0
- package/dist/repository/list-of-values.repository.js +34 -0
- package/dist/repository/list-of-values.repository.js.map +1 -0
- package/dist/repository/locale.repository.d.ts +12 -0
- package/dist/repository/locale.repository.d.ts.map +1 -0
- package/dist/repository/locale.repository.js +34 -0
- package/dist/repository/locale.repository.js.map +1 -0
- package/dist/repository/media-storage-provider-metadata.repository.d.ts +8 -0
- package/dist/repository/media-storage-provider-metadata.repository.d.ts.map +1 -0
- package/dist/repository/media-storage-provider-metadata.repository.js +28 -0
- package/dist/repository/media-storage-provider-metadata.repository.js.map +1 -0
- package/dist/repository/media.repository.d.ts +13 -8
- package/dist/repository/media.repository.d.ts.map +1 -1
- package/dist/repository/media.repository.js +18 -18
- package/dist/repository/media.repository.js.map +1 -1
- package/dist/repository/menu-item-metadata.repository.d.ts +12 -0
- package/dist/repository/menu-item-metadata.repository.d.ts.map +1 -0
- package/dist/repository/menu-item-metadata.repository.js +34 -0
- package/dist/repository/menu-item-metadata.repository.js.map +1 -0
- package/dist/repository/model-metadata.repository.d.ts +8 -0
- package/dist/repository/model-metadata.repository.d.ts.map +1 -0
- package/dist/repository/model-metadata.repository.js +28 -0
- package/dist/repository/model-metadata.repository.js.map +1 -0
- package/dist/repository/module-metadata.repository.d.ts +8 -0
- package/dist/repository/module-metadata.repository.d.ts.map +1 -0
- package/dist/repository/module-metadata.repository.js +28 -0
- package/dist/repository/module-metadata.repository.js.map +1 -0
- package/dist/repository/mq-message-queue.repository.d.ts +12 -0
- package/dist/repository/mq-message-queue.repository.d.ts.map +1 -0
- package/dist/repository/mq-message-queue.repository.js +34 -0
- package/dist/repository/mq-message-queue.repository.js.map +1 -0
- package/dist/repository/mq-message.repository.d.ts +12 -0
- package/dist/repository/mq-message.repository.d.ts.map +1 -0
- package/dist/repository/mq-message.repository.js +34 -0
- package/dist/repository/mq-message.repository.js.map +1 -0
- package/dist/repository/permission-metadata.repository.d.ts +12 -0
- package/dist/repository/permission-metadata.repository.d.ts.map +1 -0
- package/dist/repository/permission-metadata.repository.js +34 -0
- package/dist/repository/permission-metadata.repository.js.map +1 -0
- package/dist/repository/role-metadata.repository.d.ts +12 -0
- package/dist/repository/role-metadata.repository.d.ts.map +1 -0
- package/dist/repository/role-metadata.repository.js +34 -0
- package/dist/repository/role-metadata.repository.js.map +1 -0
- package/dist/repository/saved-filters.repository.d.ts +12 -0
- package/dist/repository/saved-filters.repository.d.ts.map +1 -0
- package/dist/repository/saved-filters.repository.js +62 -0
- package/dist/repository/saved-filters.repository.js.map +1 -0
- package/dist/repository/scheduled-job.repository.d.ts +9 -9
- package/dist/repository/scheduled-job.repository.d.ts.map +1 -1
- package/dist/repository/scheduled-job.repository.js +11 -12
- package/dist/repository/scheduled-job.repository.js.map +1 -1
- package/dist/repository/security-rule.repository.d.ts +7 -7
- package/dist/repository/security-rule.repository.d.ts.map +1 -1
- package/dist/repository/security-rule.repository.js +28 -17
- package/dist/repository/security-rule.repository.js.map +1 -1
- package/dist/repository/setting.repository.d.ts +12 -0
- package/dist/repository/setting.repository.d.ts.map +1 -0
- package/dist/repository/setting.repository.js +34 -0
- package/dist/repository/setting.repository.js.map +1 -0
- package/dist/repository/sms-template.repository.d.ts +12 -0
- package/dist/repository/sms-template.repository.d.ts.map +1 -0
- package/dist/repository/sms-template.repository.js +34 -0
- package/dist/repository/sms-template.repository.js.map +1 -0
- package/dist/repository/solid-base.repository.d.ts +4 -3
- package/dist/repository/solid-base.repository.d.ts.map +1 -1
- package/dist/repository/solid-base.repository.js +12 -5
- package/dist/repository/solid-base.repository.js.map +1 -1
- package/dist/repository/user-activity-history.repository.d.ts +12 -0
- package/dist/repository/user-activity-history.repository.d.ts.map +1 -0
- package/dist/repository/user-activity-history.repository.js +34 -0
- package/dist/repository/user-activity-history.repository.js.map +1 -0
- package/dist/repository/user-view-metadata.repository.d.ts +12 -0
- package/dist/repository/user-view-metadata.repository.d.ts.map +1 -0
- package/dist/repository/user-view-metadata.repository.js +34 -0
- package/dist/repository/user-view-metadata.repository.js.map +1 -0
- package/dist/repository/view-metadata.repository.d.ts +9 -5
- package/dist/repository/view-metadata.repository.d.ts.map +1 -1
- package/dist/repository/view-metadata.repository.js +11 -5
- package/dist/repository/view-metadata.repository.js.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts +9 -5
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +32 -13
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/permission-metadata-seeder.service.d.ts +2 -3
- package/dist/seeders/permission-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/permission-metadata-seeder.service.js +2 -5
- package/dist/seeders/permission-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +109 -62
- package/dist/seeders/system-fields-seeder.service.d.ts +2 -3
- package/dist/seeders/system-fields-seeder.service.d.ts.map +1 -1
- package/dist/seeders/system-fields-seeder.service.js +4 -8
- package/dist/seeders/system-fields-seeder.service.js.map +1 -1
- package/dist/services/action-metadata.service.d.ts +7 -6
- package/dist/services/action-metadata.service.d.ts.map +1 -1
- package/dist/services/action-metadata.service.js +7 -8
- package/dist/services/action-metadata.service.js.map +1 -1
- package/dist/services/ai-interaction.service.d.ts +10 -9
- package/dist/services/ai-interaction.service.d.ts.map +1 -1
- package/dist/services/ai-interaction.service.js +9 -10
- package/dist/services/ai-interaction.service.js.map +1 -1
- package/dist/services/authentication.service.d.ts +3 -4
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +11 -11
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/chatter-message.service.d.ts +12 -12
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +16 -18
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/crud.service.d.ts +5 -5
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +9 -9
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/dashboard-question-sql-dataset-config.service.d.ts +4 -3
- package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +1 -1
- package/dist/services/dashboard-question-sql-dataset-config.service.js +2 -3
- package/dist/services/dashboard-question-sql-dataset-config.service.js.map +1 -1
- package/dist/services/dashboard-question.service.d.ts +4 -3
- package/dist/services/dashboard-question.service.d.ts.map +1 -1
- package/dist/services/dashboard-question.service.js +2 -2
- package/dist/services/dashboard-question.service.js.map +1 -1
- package/dist/services/dashboard-variable.service.d.ts +4 -3
- package/dist/services/dashboard-variable.service.d.ts.map +1 -1
- package/dist/services/dashboard-variable.service.js +2 -3
- package/dist/services/dashboard-variable.service.js.map +1 -1
- package/dist/services/email-template.service.d.ts +4 -3
- package/dist/services/email-template.service.d.ts.map +1 -1
- package/dist/services/email-template.service.js +2 -3
- package/dist/services/email-template.service.js.map +1 -1
- package/dist/services/export-template.service.d.ts +6 -4
- package/dist/services/export-template.service.d.ts.map +1 -1
- package/dist/services/export-template.service.js +14 -4
- package/dist/services/export-template.service.js.map +1 -1
- package/dist/services/export-transaction.service.d.ts +8 -7
- package/dist/services/export-transaction.service.d.ts.map +1 -1
- package/dist/services/export-transaction.service.js +11 -14
- package/dist/services/export-transaction.service.js.map +1 -1
- package/dist/services/field-metadata.service.js +1 -1
- package/dist/services/field-metadata.service.js.map +1 -1
- package/dist/services/file.service.d.ts.map +1 -1
- package/dist/services/file.service.js +1 -17
- package/dist/services/file.service.js.map +1 -1
- package/dist/services/import-transaction-error-log.service.d.ts +4 -3
- package/dist/services/import-transaction-error-log.service.d.ts.map +1 -1
- package/dist/services/import-transaction-error-log.service.js +2 -3
- package/dist/services/import-transaction-error-log.service.js.map +1 -1
- package/dist/services/import-transaction.service.d.ts +8 -4
- package/dist/services/import-transaction.service.d.ts.map +1 -1
- package/dist/services/import-transaction.service.js +43 -16
- package/dist/services/import-transaction.service.js.map +1 -1
- package/dist/services/list-of-values.service.d.ts +19 -6
- package/dist/services/list-of-values.service.d.ts.map +1 -1
- package/dist/services/list-of-values.service.js +164 -9
- package/dist/services/list-of-values.service.js.map +1 -1
- package/dist/services/locale.service.d.ts +9 -10
- package/dist/services/locale.service.d.ts.map +1 -1
- package/dist/services/locale.service.js +8 -14
- package/dist/services/locale.service.js.map +1 -1
- package/dist/services/mail/smtp-email.service.d.ts.map +1 -1
- package/dist/services/mail/smtp-email.service.js +6 -1
- package/dist/services/mail/smtp-email.service.js.map +1 -1
- package/dist/services/media-storage-provider-metadata.service.d.ts +4 -4
- package/dist/services/media-storage-provider-metadata.service.d.ts.map +1 -1
- package/dist/services/media-storage-provider-metadata.service.js +5 -11
- package/dist/services/media-storage-provider-metadata.service.js.map +1 -1
- package/dist/services/media.service.d.ts +7 -6
- package/dist/services/media.service.d.ts.map +1 -1
- package/dist/services/media.service.js +8 -12
- package/dist/services/media.service.js.map +1 -1
- package/dist/services/menu-item-metadata.service.d.ts +4 -3
- package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
- package/dist/services/menu-item-metadata.service.js +4 -5
- package/dist/services/menu-item-metadata.service.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts +3 -2
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +45 -43
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/module-metadata.service.d.ts +3 -2
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js +3 -3
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/mq-message-queue.service.d.ts +4 -3
- package/dist/services/mq-message-queue.service.d.ts.map +1 -1
- package/dist/services/mq-message-queue.service.js +2 -3
- package/dist/services/mq-message-queue.service.js.map +1 -1
- package/dist/services/mq-message.service.d.ts +4 -3
- package/dist/services/mq-message.service.d.ts.map +1 -1
- package/dist/services/mq-message.service.js +2 -2
- package/dist/services/mq-message.service.js.map +1 -1
- package/dist/services/permission-metadata.service.d.ts +4 -3
- package/dist/services/permission-metadata.service.d.ts.map +1 -1
- package/dist/services/permission-metadata.service.js +2 -3
- package/dist/services/permission-metadata.service.js.map +1 -1
- package/dist/services/queues/rabbitmq-publisher.service.d.ts +8 -3
- package/dist/services/queues/rabbitmq-publisher.service.d.ts.map +1 -1
- package/dist/services/queues/rabbitmq-publisher.service.js +79 -18
- package/dist/services/queues/rabbitmq-publisher.service.js.map +1 -1
- package/dist/services/queues/rabbitmq-subscriber.service.d.ts.map +1 -1
- package/dist/services/queues/rabbitmq-subscriber.service.js +9 -3
- package/dist/services/queues/rabbitmq-subscriber.service.js.map +1 -1
- package/dist/services/role-metadata.service.d.ts +10 -9
- package/dist/services/role-metadata.service.d.ts.map +1 -1
- package/dist/services/role-metadata.service.js +9 -11
- package/dist/services/role-metadata.service.js.map +1 -1
- package/dist/services/saved-filters.service.d.ts +7 -6
- package/dist/services/saved-filters.service.d.ts.map +1 -1
- package/dist/services/saved-filters.service.js +6 -7
- package/dist/services/saved-filters.service.js.map +1 -1
- package/dist/services/scheduled-job.service.d.ts +4 -3
- package/dist/services/scheduled-job.service.d.ts.map +1 -1
- package/dist/services/scheduled-job.service.js +2 -3
- package/dist/services/scheduled-job.service.js.map +1 -1
- package/dist/services/scheduled-jobs/scheduler.service.d.ts +3 -4
- package/dist/services/scheduled-jobs/scheduler.service.d.ts.map +1 -1
- package/dist/services/scheduled-jobs/scheduler.service.js +6 -11
- package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -1
- package/dist/services/security-rule.service.d.ts +4 -3
- package/dist/services/security-rule.service.d.ts.map +1 -1
- package/dist/services/security-rule.service.js +3 -3
- package/dist/services/security-rule.service.js.map +1 -1
- package/dist/services/setting.service.d.ts +3 -2
- package/dist/services/setting.service.d.ts.map +1 -1
- package/dist/services/setting.service.js +25 -9
- package/dist/services/setting.service.js.map +1 -1
- package/dist/services/sms-template.service.d.ts +4 -3
- package/dist/services/sms-template.service.d.ts.map +1 -1
- package/dist/services/sms-template.service.js +2 -3
- 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.d.ts +4 -3
- package/dist/services/user-activity-history.service.d.ts.map +1 -1
- package/dist/services/user-activity-history.service.js +2 -3
- package/dist/services/user-activity-history.service.js.map +1 -1
- package/dist/services/user-view-metadata.service.d.ts +4 -3
- package/dist/services/user-view-metadata.service.d.ts.map +1 -1
- package/dist/services/user-view-metadata.service.js +2 -3
- package/dist/services/user-view-metadata.service.js.map +1 -1
- package/dist/services/user.service.d.ts +2 -2
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +3 -3
- package/dist/services/user.service.js.map +1 -1
- package/dist/services/view-metadata.service.d.ts +5 -6
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +5 -10
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +164 -121
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/audit.subscriber.d.ts +4 -4
- package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
- package/dist/subscribers/audit.subscriber.js +4 -5
- package/dist/subscribers/audit.subscriber.js.map +1 -1
- package/dist/subscribers/{list-of-values-metadata.subscriber.d.ts → list-of-values.subscriber.d.ts} +5 -5
- package/dist/subscribers/list-of-values.subscriber.d.ts.map +1 -0
- package/dist/subscribers/{list-of-values-metadata.subscriber.js → list-of-values.subscriber.js} +13 -13
- package/dist/subscribers/list-of-values.subscriber.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/rebuild.sh +2 -3
- package/src/config/iam.config.ts +3 -2
- package/src/constants/error-messages.ts +3 -0
- package/src/controllers/authentication.controller.ts +2 -2
- package/src/controllers/email-template.controller.ts +57 -64
- package/src/controllers/export-template.controller.ts +4 -2
- package/src/controllers/import-transaction.controller.ts +5 -2
- package/src/controllers/sms-template.controller.ts +55 -55
- package/src/decorators/security-rule-config-provider.decorator.ts +7 -0
- package/src/decorators/solid-password.decorator.ts +25 -17
- package/src/dtos/change-password.dto.ts +1 -1
- package/src/dtos/confirm-forgot-password.dto.ts +1 -1
- package/src/dtos/create-saved-filters.dto.ts +4 -0
- package/src/dtos/create-security-rule.dto.ts +5 -0
- package/src/dtos/update-saved-filters.dto.ts +4 -0
- package/src/dtos/update-security-rule.dto.ts +6 -1
- package/src/entities/field-metadata.entity.ts +2 -1
- package/src/entities/saved-filters.entity.ts +3 -1
- package/src/entities/security-rule.entity.ts +2 -0
- package/src/helpers/model-metadata-helper.service.ts +4 -5
- package/src/helpers/module-metadata-helper.service.ts +9 -0
- package/src/helpers/solid-registry.ts +21 -2
- package/src/helpers/user-helper.ts +37 -0
- package/src/index.ts +0 -1
- package/src/interfaces.ts +7 -0
- package/src/jobs/trigger-mcp-client-subscriber.service.ts +2 -2
- package/src/jobs/twilio-sms-subscriber.service.ts +2 -2
- package/src/repository/action-metadata.repository.ts +17 -0
- package/src/repository/ai-interaction.repository.ts +17 -0
- package/src/repository/chatter-message-details.repository.ts +3 -3
- package/src/repository/chatter-message.repository.ts +2 -2
- package/src/repository/dashboard-question-sql-dataset-config.repository.ts +17 -0
- package/src/repository/dashboard-question.repository.ts +17 -0
- package/src/repository/dashboard-variable.repository.ts +17 -0
- package/src/repository/dashboard.repository.ts +10 -10
- package/src/repository/email-template.repository.ts +17 -0
- package/src/repository/export-template.repository.ts +17 -0
- package/src/repository/export-transaction.repository.ts +17 -0
- package/src/repository/field-metadata.repository.ts +8 -6
- package/src/repository/import-transaction-error-log.repository.ts +17 -0
- package/src/repository/import-transaction.repository.ts +17 -0
- package/src/repository/list-of-values.repository.ts +17 -0
- package/src/repository/locale.repository.ts +17 -0
- package/src/repository/media-storage-provider-metadata.repository.ts +15 -0
- package/src/repository/media.repository.ts +21 -15
- package/src/repository/menu-item-metadata.repository.ts +17 -0
- package/src/repository/model-metadata.repository.ts +15 -0
- package/src/repository/module-metadata.repository.ts +15 -0
- package/src/repository/mq-message-queue.repository.ts +17 -0
- package/src/repository/mq-message.repository.ts +17 -0
- package/src/repository/permission-metadata.repository.ts +17 -0
- package/src/repository/role-metadata.repository.ts +17 -0
- package/src/repository/saved-filters.repository.ts +65 -0
- package/src/repository/scheduled-job.repository.ts +13 -14
- package/src/repository/security-rule.repository.ts +45 -25
- package/src/repository/setting.repository.ts +17 -0
- package/src/repository/sms-template.repository.ts +17 -0
- package/src/repository/solid-base.repository.ts +16 -8
- package/src/repository/user-activity-history.repository.ts +17 -0
- package/src/repository/user-view-metadata.repository.ts +17 -0
- package/src/repository/view-metadata.repository.ts +10 -8
- package/src/seeders/module-metadata-seeder.service.ts +35 -5
- package/src/seeders/permission-metadata-seeder.service.ts +4 -2
- package/src/seeders/seed-data/solid-core-metadata.json +111 -66
- package/src/seeders/system-fields-seeder.service.ts +6 -4
- package/src/services/action-metadata.service.ts +9 -7
- package/src/services/ai-interaction.service.ts +15 -13
- package/src/services/authentication.service.ts +26 -12
- package/src/services/chatter-message.service.ts +23 -21
- package/src/services/crud.service.ts +27 -32
- package/src/services/dashboard-question-sql-dataset-config.service.ts +4 -2
- package/src/services/dashboard-question.service.ts +4 -2
- package/src/services/dashboard-variable.service.ts +5 -2
- package/src/services/docker exec -it mssql //" +8 -0
- package/src/services/email-template.service.ts +4 -2
- package/src/services/export-template.service.ts +22 -4
- package/src/services/export-transaction.service.ts +16 -9
- package/src/services/field-metadata.service.ts +1 -1
- package/src/services/file.service.ts +1 -24
- package/src/services/import-transaction-error-log.service.ts +4 -2
- package/src/services/import-transaction.service.ts +109 -30
- package/src/services/list-of-values.service.ts +192 -8
- package/src/services/locale.service.ts +16 -14
- package/src/services/mail/smtp-email.service.ts +7 -1
- package/src/services/media-storage-provider-metadata.service.ts +10 -9
- package/src/services/media.service.ts +16 -8
- package/src/services/menu-item-metadata.service.ts +7 -4
- package/src/services/model-metadata.service.ts +64 -58
- package/src/services/module-metadata.service.ts +6 -3
- package/src/services/mq-message-queue.service.ts +4 -2
- package/src/services/mq-message.service.ts +4 -2
- package/src/services/permission-metadata.service.ts +5 -3
- package/src/services/queues/rabbitmq-publisher.service.ts +99 -41
- package/src/services/queues/rabbitmq-subscriber.service.ts +18 -5
- package/src/services/role-metadata.service.ts +16 -12
- package/src/services/saved-filters.service.ts +10 -8
- package/src/services/scheduled-job.service.ts +4 -2
- package/src/services/scheduled-jobs/scheduler.service.ts +9 -9
- package/src/services/security-rule.service.ts +6 -3
- package/src/services/setting.service.ts +31 -14
- package/src/services/sms-template.service.ts +4 -2
- package/src/services/solid-introspect.service.ts +23 -2
- package/src/services/user-activity-history.service.ts +4 -2
- package/src/services/user-view-metadata.service.ts +4 -2
- package/src/services/user.service.ts +5 -2
- package/src/services/view-metadata.service.ts +11 -9
- package/src/solid-core.module.ts +166 -138
- package/src/subscribers/audit.subscriber.ts +8 -7
- package/src/subscribers/{list-of-values-metadata.subscriber.ts → list-of-values.subscriber.ts} +7 -7
- package/dist/repository/field.repository.d.ts +0 -9
- package/dist/repository/field.repository.d.ts.map +0 -1
- package/dist/repository/field.repository.js +0 -46
- package/dist/repository/field.repository.js.map +0 -1
- package/dist/services/list-of-values-metadata.service.d.ts +0 -34
- package/dist/services/list-of-values-metadata.service.d.ts.map +0 -1
- package/dist/services/list-of-values-metadata.service.js +0 -213
- package/dist/services/list-of-values-metadata.service.js.map +0 -1
- package/dist/subscribers/list-of-values-metadata.subscriber.d.ts.map +0 -1
- package/dist/subscribers/list-of-values-metadata.subscriber.js.map +0 -1
- package/solid_seed_fixes.ts.txt +0 -93
- package/src/repository/field.repository.ts +0 -33
- package/src/services/list-of-values-metadata.service.ts +0 -216
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { BadRequestException, Injectable, Logger } from '@nestjs/common';
|
|
1
|
+
import { BadRequestException, ForbiddenException, Injectable, Logger } from '@nestjs/common';
|
|
2
2
|
import { DiscoveryService, ModuleRef } from "@nestjs/core";
|
|
3
|
-
import { InjectEntityManager
|
|
4
|
-
import { EntityManager
|
|
3
|
+
import { InjectEntityManager } from '@nestjs/typeorm';
|
|
4
|
+
import { EntityManager } from 'typeorm';
|
|
5
5
|
|
|
6
6
|
import { ConfigService } from '@nestjs/config';
|
|
7
7
|
import { CrudHelperService } from 'src/services/crud-helper.service';
|
|
@@ -13,20 +13,25 @@ import { ModuleMetadataService } from 'src/services/module-metadata.service';
|
|
|
13
13
|
|
|
14
14
|
import { classify } from '@angular-devkit/core/src/utils/strings';
|
|
15
15
|
import { HttpService } from '@nestjs/axios';
|
|
16
|
+
import { ERROR_MESSAGES } from 'src/constants/error-messages';
|
|
16
17
|
import { RelationFieldsCommand, RelationType, SolidFieldType } from 'src/dtos/create-field-metadata.dto';
|
|
17
18
|
import { ImportInstructionsResponseDto, StandardImportInstructionsResponseDto } from 'src/dtos/import-instructions.dto';
|
|
18
19
|
import { FieldMetadata } from 'src/entities/field-metadata.entity';
|
|
19
20
|
import { ImportTransactionErrorLog } from 'src/entities/import-transaction-error-log.entity';
|
|
20
21
|
import { ModelMetadata } from 'src/entities/model-metadata.entity';
|
|
22
|
+
import { parseFlexibleDate } from 'src/helpers/date.helper';
|
|
21
23
|
import { MediaWithFullUrl } from 'src/interfaces';
|
|
24
|
+
import { ImportTransactionRepository } from 'src/repository/import-transaction.repository';
|
|
22
25
|
import { Readable } from 'stream';
|
|
23
26
|
import { v4 as uuidv4 } from 'uuid';
|
|
24
27
|
import { ImportTransaction } from '../entities/import-transaction.entity';
|
|
25
28
|
import { CsvService } from './csv.service';
|
|
26
29
|
import { ExcelService } from './excel.service';
|
|
27
30
|
import { SolidIntrospectService } from './solid-introspect.service';
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
31
|
+
import { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.service';
|
|
32
|
+
import { getUserExcludedFields } from 'src/helpers/user-helper';
|
|
33
|
+
import { ActiveUserData } from 'src/interfaces/active-user-data.interface';
|
|
34
|
+
import {upperFirst, camelCase} from 'lodash';
|
|
30
35
|
|
|
31
36
|
interface ImportTemplateFileInfo {
|
|
32
37
|
stream: NodeJS.ReadableStream;
|
|
@@ -97,13 +102,15 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
|
|
|
97
102
|
readonly crudHelperService: CrudHelperService,
|
|
98
103
|
@InjectEntityManager()
|
|
99
104
|
readonly entityManager: EntityManager,
|
|
100
|
-
@InjectRepository(ImportTransaction, 'default')
|
|
101
|
-
readonly repo: Repository<ImportTransaction>,
|
|
105
|
+
// @InjectRepository(ImportTransaction, 'default')
|
|
106
|
+
// readonly repo: Repository<ImportTransaction>,
|
|
107
|
+
readonly repo: ImportTransactionRepository,
|
|
102
108
|
readonly moduleRef: ModuleRef,
|
|
103
109
|
readonly excelService: ExcelService,
|
|
104
110
|
readonly csvService: CsvService,
|
|
105
111
|
readonly httpService: HttpService,
|
|
106
112
|
readonly introspectService: SolidIntrospectService,
|
|
113
|
+
private readonly modelMetadataHelperService: ModelMetadataHelperService,
|
|
107
114
|
// readonly fieldMetadataService: FieldMetadataService,
|
|
108
115
|
) {
|
|
109
116
|
super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'importTransaction', 'solid-core', moduleRef);
|
|
@@ -124,8 +131,16 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
|
|
|
124
131
|
if (!modelMetadata) {
|
|
125
132
|
throw new Error(ERROR_MESSAGES.MODEL_METADATA_NOT_FOUND(modelMetadataId));
|
|
126
133
|
}
|
|
134
|
+
|
|
135
|
+
const allFields = await this.modelMetadataHelperService.loadFieldHierarchy(
|
|
136
|
+
modelMetadata.singularName,
|
|
137
|
+
);
|
|
138
|
+
|
|
139
|
+
// Replace original fields with full hierarchy fields
|
|
140
|
+
// modelMetadata.fields = allFields;
|
|
141
|
+
|
|
127
142
|
// Create a header row with the display names of the fields, excluding the media fields,computed fields
|
|
128
|
-
const headers = this.fieldsAllowedForImport(
|
|
143
|
+
const headers = this.fieldsAllowedForImport(allFields)
|
|
129
144
|
.map(field => field.displayName);
|
|
130
145
|
|
|
131
146
|
// Depending on the format, generate the template
|
|
@@ -163,6 +178,19 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
|
|
|
163
178
|
throw new Error(ERROR_MESSAGES.MODEL_METADATA_NOT_FOUND(modelMetadataId));
|
|
164
179
|
}
|
|
165
180
|
|
|
181
|
+
// Step 2: Load full field hierarchy (includes parent model fields)
|
|
182
|
+
const allFields = await this.modelMetadataHelperService.loadFieldHierarchy(
|
|
183
|
+
modelMetadata.singularName,
|
|
184
|
+
);
|
|
185
|
+
|
|
186
|
+
const systemFieldNames = this.modelMetadataHelperService
|
|
187
|
+
.getSystemFieldsMetadata()
|
|
188
|
+
.map(field => field.name);
|
|
189
|
+
|
|
190
|
+
const userExcluded = getUserExcludedFields();
|
|
191
|
+
// Replace modelMetadata.fields with combined (child + parent) fields
|
|
192
|
+
// modelMetadata.fields = allFields;
|
|
193
|
+
|
|
166
194
|
// Create the standard import instructions
|
|
167
195
|
const standardInstructions: StandardImportInstructionsResponseDto = {
|
|
168
196
|
requiredFields: [],
|
|
@@ -176,8 +204,18 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
|
|
|
176
204
|
};
|
|
177
205
|
|
|
178
206
|
// Iterate through the fields and populate the standard instructions
|
|
179
|
-
for (const field of
|
|
180
|
-
|
|
207
|
+
for (const field of allFields) {
|
|
208
|
+
// Skip system fields
|
|
209
|
+
if (systemFieldNames.includes(field.name)) {
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// Skip excluded user fields (NO model name check needed)
|
|
214
|
+
if (userExcluded.includes(field.name)) {
|
|
215
|
+
continue;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
// if (field.isSystem) continue; // Skip system fields
|
|
181
219
|
if (field.required) {
|
|
182
220
|
standardInstructions.requiredFields.push(field.displayName);
|
|
183
221
|
}
|
|
@@ -255,9 +293,22 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
|
|
|
255
293
|
};
|
|
256
294
|
}
|
|
257
295
|
|
|
258
|
-
async startImportSync(importTransactionId: number): Promise<ImportSyncResult> {
|
|
296
|
+
async startImportSync(importTransactionId: number, activeUser: ActiveUserData): Promise<ImportSyncResult> {
|
|
259
297
|
// Load the import transaction for the given ID
|
|
260
298
|
const importTransaction = await this.loadImportTransaction(importTransactionId);
|
|
299
|
+
const modelName = upperFirst(camelCase(importTransaction.modelMetadata.singularName));
|
|
300
|
+
const permissionKey = `${modelName}Controller.insertMany`;
|
|
301
|
+
|
|
302
|
+
const userPermissions = activeUser.permissions ?? [];
|
|
303
|
+
const hasPermission = Array.isArray(userPermissions)
|
|
304
|
+
? userPermissions.includes(permissionKey)
|
|
305
|
+
: userPermissions[permissionKey] === true;
|
|
306
|
+
|
|
307
|
+
if (!hasPermission) {
|
|
308
|
+
throw new ForbiddenException(
|
|
309
|
+
`Missing permission: ${permissionKey}`
|
|
310
|
+
);
|
|
311
|
+
}
|
|
261
312
|
|
|
262
313
|
// Get the import file media object from the import transaction
|
|
263
314
|
const importFileMediaObject = this.getImportFileObject(importTransaction);
|
|
@@ -366,18 +417,43 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
|
|
|
366
417
|
}
|
|
367
418
|
|
|
368
419
|
|
|
420
|
+
// private async loadImportTransaction(importTransactionId: number) {
|
|
421
|
+
// const importTransaction = await this.findOne(importTransactionId, {
|
|
422
|
+
// populate: ['modelMetadata', 'modelMetadata.fields'],
|
|
423
|
+
// populateMedia: ['fileLocation'],
|
|
424
|
+
// });
|
|
425
|
+
// if (!importTransaction) {
|
|
426
|
+
// throw new Error(`Import transaction with ID ${importTransactionId} not found.`);
|
|
427
|
+
// }
|
|
428
|
+
// return importTransaction;
|
|
429
|
+
// }
|
|
430
|
+
|
|
369
431
|
private async loadImportTransaction(importTransactionId: number) {
|
|
432
|
+
// Step 1: Load the transaction with model metadata
|
|
370
433
|
const importTransaction = await this.findOne(importTransactionId, {
|
|
371
|
-
populate: ['modelMetadata'
|
|
434
|
+
populate: ['modelMetadata'],
|
|
372
435
|
populateMedia: ['fileLocation'],
|
|
373
436
|
});
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
437
|
+
|
|
438
|
+
// Step 2: Load full field hierarchy (child + parent fields)
|
|
439
|
+
const modelFields = await this.modelMetadataHelperService.loadFieldHierarchy(
|
|
440
|
+
importTransaction.modelMetadata.singularName,
|
|
441
|
+
);
|
|
442
|
+
|
|
443
|
+
// Step 3: Attach the combined fields back into the modelMetadata
|
|
444
|
+
importTransaction.modelMetadata.fields = modelFields;
|
|
445
|
+
|
|
377
446
|
return importTransaction;
|
|
378
447
|
}
|
|
379
448
|
|
|
380
449
|
private fieldsAllowedForImport(fields: FieldMetadata[]): FieldMetadata[] {
|
|
450
|
+
// Get system field names (e.g. id, createdAt, updatedAt...)
|
|
451
|
+
const systemFieldNames = this.modelMetadataHelperService
|
|
452
|
+
.getSystemFieldsMetadata()
|
|
453
|
+
.map(field => field.name);
|
|
454
|
+
|
|
455
|
+
const userExcluded = getUserExcludedFields();
|
|
456
|
+
|
|
381
457
|
// Filter out fields that are not allowed for import
|
|
382
458
|
return fields.filter(field =>
|
|
383
459
|
field.type !== SolidFieldType.mediaMultiple && // Exclude media multiple fields
|
|
@@ -387,7 +463,10 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
|
|
|
387
463
|
field.type !== SolidFieldType.richText &&
|
|
388
464
|
field.type !== SolidFieldType.uuid &&
|
|
389
465
|
field.relationType !== RelationType.oneToMany &&
|
|
390
|
-
field.
|
|
466
|
+
!systemFieldNames.includes(field.name) &&
|
|
467
|
+
// field.isSystem !== true // Exclude system fields
|
|
468
|
+
|
|
469
|
+
!userExcluded.includes(field.name)
|
|
391
470
|
);
|
|
392
471
|
}
|
|
393
472
|
|
|
@@ -567,11 +646,11 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
|
|
|
567
646
|
// TODO Move this logic to field crud managers i.e add a parse method to the field crud manager interface
|
|
568
647
|
switch (fieldType) {
|
|
569
648
|
case SolidFieldType.relation: {
|
|
570
|
-
return await this.populateDtoForRelations(fieldMetadata, record, key, dtoRecord);
|
|
649
|
+
return await this.populateDtoForRelations(fieldMetadata, record, key, dtoRecord);
|
|
571
650
|
}
|
|
572
651
|
case SolidFieldType.date:
|
|
573
652
|
case SolidFieldType.datetime:
|
|
574
|
-
|
|
653
|
+
return this.populateDtoForDate(record, key, fieldMetadata, dtoRecord);
|
|
575
654
|
case SolidFieldType.int:
|
|
576
655
|
case SolidFieldType.bigint:
|
|
577
656
|
case SolidFieldType.decimal:
|
|
@@ -594,7 +673,7 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
|
|
|
594
673
|
}
|
|
595
674
|
}
|
|
596
675
|
}
|
|
597
|
-
|
|
676
|
+
|
|
598
677
|
private populateDtoForSelectionValues(dtoRecord: Record<string, any>, fieldMetadata: FieldMetadata, record: Record<string, any>, key: string) {
|
|
599
678
|
const rawValue = record[key];
|
|
600
679
|
|
|
@@ -658,17 +737,17 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
|
|
|
658
737
|
dtoRecord[fieldMetadata.name] = null; // If the cell is empty, set the field to null
|
|
659
738
|
return dtoRecord;
|
|
660
739
|
}
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
740
|
+
// Use flexible date parser
|
|
741
|
+
this.logger.verbose(cellValue, 'cellValue');
|
|
742
|
+
|
|
743
|
+
const dateValue = parseFlexibleDate(cellValue);
|
|
744
|
+
this.logger.verbose(dateValue, 'dateValue');
|
|
745
|
+
|
|
746
|
+
if (!dateValue) {
|
|
747
|
+
throw new Error(
|
|
748
|
+
`Invalid date value for cell ${key} with value ${cellValue}`
|
|
749
|
+
);
|
|
750
|
+
}
|
|
672
751
|
dtoRecord[fieldMetadata.name] = dateValue;
|
|
673
752
|
return dtoRecord;
|
|
674
753
|
}
|
|
@@ -1,20 +1,29 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
|
-
import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';
|
|
3
2
|
import { DiscoveryService, ModuleRef } from "@nestjs/core";
|
|
4
|
-
import {
|
|
3
|
+
import { InjectEntityManager } from '@nestjs/typeorm';
|
|
4
|
+
import { EntityManager } from 'typeorm';
|
|
5
5
|
|
|
6
|
+
import { ConfigService } from '@nestjs/config';
|
|
7
|
+
import { CrudHelperService } from 'src/services/crud-helper.service';
|
|
6
8
|
import { CRUDService } from 'src/services/crud.service';
|
|
9
|
+
import { FileService } from 'src/services/file.service';
|
|
7
10
|
import { ModelMetadataService } from 'src/services/model-metadata.service';
|
|
8
11
|
import { ModuleMetadataService } from 'src/services/module-metadata.service';
|
|
9
|
-
import { ConfigService } from '@nestjs/config';
|
|
10
|
-
import { FileService } from 'src/services/file.service';
|
|
11
|
-
import { CrudHelperService } from 'src/services/crud-helper.service';
|
|
12
12
|
|
|
13
13
|
|
|
14
|
+
import * as fs from 'fs/promises'; // Use the Promise-based version of fs for async/await
|
|
15
|
+
import { ListOfValuesRepository } from 'src/repository/list-of-values.repository';
|
|
14
16
|
import { ListOfValues } from '../entities/list-of-values.entity';
|
|
17
|
+
import { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.service';
|
|
18
|
+
import { ModuleMetadataHelperService } from 'src/helpers/module-metadata-helper.service';
|
|
19
|
+
import { ListOfValuesMapper } from 'src/mappers/list-of-values-mapper';
|
|
20
|
+
|
|
15
21
|
|
|
16
22
|
@Injectable()
|
|
17
23
|
export class ListOfValuesService extends CRUDService<ListOfValues> {
|
|
24
|
+
logger: any;
|
|
25
|
+
// moduleMetadataHelperService: any;
|
|
26
|
+
// listOfValuesMapper: any;
|
|
18
27
|
constructor(
|
|
19
28
|
readonly modelMetadataService: ModelMetadataService,
|
|
20
29
|
readonly moduleMetadataService: ModuleMetadataService,
|
|
@@ -22,11 +31,15 @@ export class ListOfValuesService extends CRUDService<ListOfValues> {
|
|
|
22
31
|
readonly fileService: FileService,
|
|
23
32
|
readonly discoveryService: DiscoveryService,
|
|
24
33
|
readonly crudHelperService: CrudHelperService,
|
|
34
|
+
|
|
25
35
|
@InjectEntityManager()
|
|
26
36
|
readonly entityManager: EntityManager,
|
|
27
|
-
@InjectRepository(ListOfValues, 'default')
|
|
28
|
-
readonly repo: Repository<ListOfValues>,
|
|
29
|
-
readonly
|
|
37
|
+
// @InjectRepository(ListOfValues, 'default')
|
|
38
|
+
// readonly repo: Repository<ListOfValues>,
|
|
39
|
+
readonly repo: ListOfValuesRepository,
|
|
40
|
+
readonly moduleRef: ModuleRef,
|
|
41
|
+
private readonly moduleMetadataHelperService: ModuleMetadataHelperService,
|
|
42
|
+
readonly listOfValuesMapper: ListOfValuesMapper,
|
|
30
43
|
|
|
31
44
|
) {
|
|
32
45
|
super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'listOfValues', 'solid-core', moduleRef);
|
|
@@ -64,4 +77,175 @@ export class ListOfValuesService extends CRUDService<ListOfValues> {
|
|
|
64
77
|
}
|
|
65
78
|
}
|
|
66
79
|
|
|
80
|
+
|
|
81
|
+
async saveListofValuesToConfig(entity: ListOfValues) {
|
|
82
|
+
if (!entity) {
|
|
83
|
+
this.logger.debug('No entity found in the ListofValuesSubscriber saveListofvalueToConfig method');
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Validate list of value details
|
|
88
|
+
const listofvalue = entity as ListOfValues;
|
|
89
|
+
const moduleMetadata = entity.module;
|
|
90
|
+
if (!moduleMetadata) {
|
|
91
|
+
throw new Error(`Module metadata not found for listofvalue id ${entity.id}`);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Get config file details
|
|
95
|
+
const { filePath, metaData } = await this.getConfigFileDetails(moduleMetadata.name); // sting expected module name
|
|
96
|
+
if (!filePath || !metaData) {
|
|
97
|
+
throw new Error(`Configuration details not found for module: ${moduleMetadata.name}`);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Write the listofvalue to the config file
|
|
101
|
+
await this.writeToConfig(metaData, listofvalue, filePath);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
async updateListofValuesToConfig(oldentity: ListOfValues, entity: ListOfValues) {
|
|
105
|
+
if (!entity) {
|
|
106
|
+
this.logger.debug('No entity found in the ListofValuesSubscriber saveListofvalueToConfig method');
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Validate list of value details
|
|
111
|
+
const oldlistofvalue = oldentity as ListOfValues;
|
|
112
|
+
const listofvalue = entity as ListOfValues;
|
|
113
|
+
const moduleMetadata = entity.module;
|
|
114
|
+
if (!moduleMetadata) {
|
|
115
|
+
throw new Error(`Module metadata not found for listofvalue id ${entity.id}`);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// Get config file details
|
|
119
|
+
const { filePath, metaData } = await this.getConfigFileDetails(moduleMetadata.name); // sting expected module name
|
|
120
|
+
if (!filePath || !metaData) {
|
|
121
|
+
throw new Error(`Configuration details not found for module: ${moduleMetadata.name}`);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// Write the listofvalue to the config file
|
|
125
|
+
await this.updateToConfig(metaData, oldlistofvalue, listofvalue, filePath);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
async deleteListOfValuesFromConfig(entity: ListOfValues) {
|
|
129
|
+
if (!entity) {
|
|
130
|
+
this.logger.debug('No entity found in the ListofValuesSubscriber saveListofvalueToConfig method');
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// Validate list of value details
|
|
135
|
+
const listofvalue = entity as ListOfValues;
|
|
136
|
+
const moduleMetadata = entity.module;
|
|
137
|
+
if (!moduleMetadata) {
|
|
138
|
+
throw new Error(`Module metadata not found for listofvalue id ${entity.id}`);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// Get config file details
|
|
142
|
+
const { filePath, metaData } = await this.getConfigFileDetails(moduleMetadata.name); // sting expected module name
|
|
143
|
+
if (!filePath || !metaData) {
|
|
144
|
+
throw new Error(`Configuration details not found for module: ${moduleMetadata.name}`);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// delete the listofvalue to the config file
|
|
148
|
+
await this.deleteFromConfig(metaData, listofvalue, filePath);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
private async getConfigFileDetails(moduleName: string): Promise<{ filePath: string; metaData: any }> {
|
|
152
|
+
const filePath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(moduleName);
|
|
153
|
+
try {
|
|
154
|
+
await fs.access(filePath);
|
|
155
|
+
} catch (error) {
|
|
156
|
+
throw new Error(`Configuration file not found for module: ${moduleName}`);
|
|
157
|
+
}
|
|
158
|
+
const metaData = await this.moduleMetadataHelperService.getModuleMetadataConfiguration(filePath);
|
|
159
|
+
return { filePath, metaData };
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
private async writeToConfig(metaData: any, listofvalues: ListOfValues, filePath: string) {
|
|
163
|
+
const dto = await this.listOfValuesMapper.toDto(listofvalues);
|
|
164
|
+
|
|
165
|
+
if (!Array.isArray(metaData.listOfValues)) {
|
|
166
|
+
metaData.listOfValues = [];
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// Match by type + value + module
|
|
170
|
+
const existingIndex = metaData.listOfValues.findIndex(
|
|
171
|
+
(item: { type: string; value: string; module: number }) =>
|
|
172
|
+
item.type === dto.type &&
|
|
173
|
+
item.value === dto.value &&
|
|
174
|
+
item.module === dto.module
|
|
175
|
+
);
|
|
176
|
+
|
|
177
|
+
if (existingIndex !== -1) {
|
|
178
|
+
// Replace existing entry
|
|
179
|
+
metaData.listOfValues[existingIndex] = dto;
|
|
180
|
+
} else {
|
|
181
|
+
// Insert new entry
|
|
182
|
+
// metaData.listOfValues.unshift(dto);
|
|
183
|
+
|
|
184
|
+
if (metaData.listOfValues.length === 0) {
|
|
185
|
+
// Case 1: Empty array → add first item
|
|
186
|
+
metaData.listOfValues.push(dto);
|
|
187
|
+
} else {
|
|
188
|
+
// Case 2: Insert new item right after index 0
|
|
189
|
+
metaData.listOfValues.unshift(dto);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
const updatedContent = JSON.stringify(metaData, null, 2);
|
|
195
|
+
await fs.writeFile(filePath, updatedContent);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
private async updateToConfig(metaData: any, oldlistofvalues: ListOfValues, listofvalues: ListOfValues, filePath: string) {
|
|
199
|
+
const newvalue = await this.listOfValuesMapper.toDto(listofvalues);
|
|
200
|
+
const oldvalue = await this.listOfValuesMapper.toDto(oldlistofvalues);
|
|
201
|
+
|
|
202
|
+
if (!Array.isArray(metaData.listOfValues)) {
|
|
203
|
+
metaData.listOfValues = [];
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
const searchType = oldvalue.type || newvalue.type;
|
|
207
|
+
const searchValue = oldvalue.value || newvalue.value;
|
|
208
|
+
const searchModule = oldvalue.module || newvalue.module;
|
|
209
|
+
|
|
210
|
+
const existingIndex = metaData.listOfValues.findIndex(
|
|
211
|
+
(item: { type: string; value: string; module: number }) =>
|
|
212
|
+
item.type === searchType && item.value === searchValue && item.module === searchModule
|
|
213
|
+
);
|
|
214
|
+
if (existingIndex !== -1) {
|
|
215
|
+
// Replace existing match
|
|
216
|
+
metaData.listOfValues[existingIndex] = newvalue;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
const updatedContent = JSON.stringify(metaData, null, 2);
|
|
220
|
+
await fs.writeFile(filePath, updatedContent);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
private async deleteFromConfig(metaData: any, listofvalues: ListOfValues, filePath: string) {
|
|
224
|
+
const dto = await this.listOfValuesMapper.toDto(listofvalues);
|
|
225
|
+
|
|
226
|
+
if (!Array.isArray(metaData.listOfValues)) {
|
|
227
|
+
metaData.listOfValues = [];
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
// Match by type + value + module
|
|
231
|
+
const existingIndex = metaData.listOfValues.findIndex(
|
|
232
|
+
(item: { type: string; value: string; module: number }) =>
|
|
233
|
+
item.type === dto.type &&
|
|
234
|
+
item.value === dto.value &&
|
|
235
|
+
item.module === dto.module
|
|
236
|
+
);
|
|
237
|
+
|
|
238
|
+
if (existingIndex !== -1) {
|
|
239
|
+
// Remove the item
|
|
240
|
+
metaData.listOfValues.splice(existingIndex, 1);
|
|
241
|
+
this.logger.debug(`Deleted LOV ${dto.type}:${dto.value} (module ${dto.module}) from config`);
|
|
242
|
+
} else {
|
|
243
|
+
this.logger.warn(
|
|
244
|
+
`LOV ${dto.type}:${dto.value} (module ${dto.module}) not found in config during delete`
|
|
245
|
+
);
|
|
246
|
+
}
|
|
247
|
+
const updatedContent = JSON.stringify(metaData, null, 2);
|
|
248
|
+
await fs.writeFile(filePath, updatedContent);
|
|
249
|
+
|
|
250
|
+
}
|
|
67
251
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { Injectable, Logger, OnApplicationBootstrap } from '@nestjs/common';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { EntityManager
|
|
2
|
+
import { DiscoveryService, ModuleRef } from "@nestjs/core";
|
|
3
|
+
import { InjectEntityManager } from '@nestjs/typeorm';
|
|
4
|
+
import { EntityManager } from 'typeorm';
|
|
5
5
|
|
|
6
|
+
import { ConfigService } from '@nestjs/config';
|
|
7
|
+
import { Locale } from 'src/entities/locale.entity';
|
|
8
|
+
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
9
|
+
import { LocaleRepository } from 'src/repository/locale.repository';
|
|
10
|
+
import { CrudHelperService } from 'src/services/crud-helper.service';
|
|
6
11
|
import { CRUDService } from 'src/services/crud.service';
|
|
12
|
+
import { FileService } from 'src/services/file.service';
|
|
7
13
|
import { ModelMetadataService } from 'src/services/model-metadata.service';
|
|
8
14
|
import { ModuleMetadataService } from 'src/services/module-metadata.service';
|
|
9
|
-
import { ConfigService } from '@nestjs/config';
|
|
10
|
-
import { FileService } from 'src/services/file.service';
|
|
11
|
-
import { CrudHelperService } from 'src/services/crud-helper.service';
|
|
12
|
-
import { ModelMetadata } from 'src/entities/model-metadata.entity';
|
|
13
15
|
import { RequestContextService } from './request-context.service';
|
|
14
|
-
import { Locale } from 'src/entities/locale.entity';
|
|
15
|
-
import { SolidRegistry } from 'src/helpers/solid-registry';
|
|
16
16
|
@Injectable()
|
|
17
17
|
export class LocaleService extends CRUDService<Locale> implements OnApplicationBootstrap{
|
|
18
18
|
constructor(
|
|
@@ -24,12 +24,14 @@ export class LocaleService extends CRUDService<Locale> implements OnApplicationB
|
|
|
24
24
|
readonly crudHelperService: CrudHelperService,
|
|
25
25
|
@InjectEntityManager()
|
|
26
26
|
readonly entityManager: EntityManager,
|
|
27
|
-
@InjectRepository(Locale, 'default')
|
|
28
|
-
readonly repo: Repository<Locale>,
|
|
29
|
-
|
|
27
|
+
// @InjectRepository(Locale, 'default')
|
|
28
|
+
// readonly repo: Repository<Locale>,
|
|
29
|
+
readonly repo: LocaleRepository,
|
|
30
|
+
// @InjectRepository(Locale, 'default')
|
|
30
31
|
readonly moduleRef: ModuleRef,
|
|
31
|
-
@InjectRepository(ModelMetadata)
|
|
32
|
-
private readonly modelMetadataRepo: Repository<ModelMetadata>,
|
|
32
|
+
// @InjectRepository(ModelMetadata)
|
|
33
|
+
// private readonly modelMetadataRepo: Repository<ModelMetadata>,
|
|
34
|
+
// private readonly modelMetadataRepo: ModelMetadataRepository,
|
|
33
35
|
readonly requestContextService: RequestContextService,
|
|
34
36
|
readonly solidRegistry: SolidRegistry,
|
|
35
37
|
) {
|
|
@@ -114,7 +114,13 @@ export class SMTPEMailService implements IMail {
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
async sendEmailSynchronously(message: QueueMessage<any>) {
|
|
117
|
-
|
|
117
|
+
let from;
|
|
118
|
+
const { to, subject, body, attachments = [], cc, bcc } = message.payload;
|
|
119
|
+
|
|
120
|
+
const envFrom = this.commonConfiguration.smtpMail.from;
|
|
121
|
+
if (envFrom) {
|
|
122
|
+
from = envFrom;
|
|
123
|
+
}
|
|
118
124
|
|
|
119
125
|
// if any of the required fields are missing, throw an error.
|
|
120
126
|
if (!from || !to || !subject || !body) {
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { Injectable, NotFoundException } from "@nestjs/common";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { ERROR_MESSAGES } from "src/constants/error-messages";
|
|
3
|
+
import { MediaStorageProviderMetadataRepository } from "src/repository/media-storage-provider-metadata.repository";
|
|
4
|
+
import { SelectQueryBuilder } from "typeorm";
|
|
5
5
|
import { BasicFilterDto } from "../dtos/basic-filters.dto";
|
|
6
|
-
import { CrudHelperService } from "./crud-helper.service";
|
|
7
6
|
import { UpdateMediaStorageProviderMetadataDto } from "../dtos/update-media-storage-provider.dto";
|
|
8
|
-
import {
|
|
7
|
+
import { MediaStorageProviderMetadata } from "../entities/media-storage-provider-metadata.entity";
|
|
8
|
+
import { CrudHelperService } from "./crud-helper.service";
|
|
9
9
|
|
|
10
10
|
@Injectable()
|
|
11
11
|
export class MediaStorageProviderMetadataService {
|
|
12
12
|
constructor(
|
|
13
|
-
@InjectRepository(MediaStorageProviderMetadata)
|
|
14
|
-
private readonly mediaStorageProviderRepo: Repository<MediaStorageProviderMetadata>,
|
|
13
|
+
// @InjectRepository(MediaStorageProviderMetadata)
|
|
14
|
+
// private readonly mediaStorageProviderRepo: Repository<MediaStorageProviderMetadata>,
|
|
15
|
+
private readonly mediaStorageProviderRepo: MediaStorageProviderMetadataRepository,
|
|
15
16
|
private readonly crudHelperService: CrudHelperService
|
|
16
17
|
) { }
|
|
17
18
|
|
|
@@ -21,8 +22,8 @@ export class MediaStorageProviderMetadataService {
|
|
|
21
22
|
let { limit, offset, populateMedia } = basicFilterDto;
|
|
22
23
|
|
|
23
24
|
// Create above query on pincode table using query builder
|
|
24
|
-
var qb: SelectQueryBuilder<MediaStorageProviderMetadata> = this.mediaStorageProviderRepo.
|
|
25
|
-
qb =
|
|
25
|
+
var qb: SelectQueryBuilder<MediaStorageProviderMetadata> = await this.mediaStorageProviderRepo.createSecurityRuleAwareQueryBuilder(alias)
|
|
26
|
+
qb = this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias);
|
|
26
27
|
|
|
27
28
|
// Get the records and the count
|
|
28
29
|
const [entities, count] = await qb.getManyAndCount();
|
|
@@ -19,6 +19,10 @@ import { ModelMetadata } from 'src/entities/model-metadata.entity';
|
|
|
19
19
|
import { getMediaStorageProvider } from "./mediaStorageProviders";
|
|
20
20
|
import { BasicFilterDto } from 'src/dtos/basic-filters.dto';
|
|
21
21
|
import { ERROR_MESSAGES } from 'src/constants/error-messages';
|
|
22
|
+
import { MediaRepository } from 'src/repository/media.repository';
|
|
23
|
+
import { ModelMetadataRepository } from 'src/repository/model-metadata.repository';
|
|
24
|
+
import { MediaStorageProviderMetadataRepository } from 'src/repository/media-storage-provider-metadata.repository';
|
|
25
|
+
import { FieldMetadataRepository } from 'src/repository/field-metadata.repository';
|
|
22
26
|
|
|
23
27
|
|
|
24
28
|
@Injectable()
|
|
@@ -32,14 +36,18 @@ export class MediaService extends CRUDService<Media> {
|
|
|
32
36
|
readonly crudHelperService: CrudHelperService,
|
|
33
37
|
@InjectEntityManager()
|
|
34
38
|
readonly entityManager: EntityManager,
|
|
35
|
-
@InjectRepository(Media, 'default')
|
|
36
|
-
readonly repo: Repository<Media>,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
// @InjectRepository(Media, 'default')
|
|
40
|
+
// readonly repo: Repository<Media>,
|
|
41
|
+
readonly repo: MediaRepository,
|
|
42
|
+
// @InjectRepository(ModelMetadata)
|
|
43
|
+
// private readonly modelMetadataRepo: Repository<ModelMetadata>,
|
|
44
|
+
// @InjectRepository(MediaStorageProviderMetadata)
|
|
45
|
+
// private readonly mediaStorageProviderMetadataRepo: Repository<MediaStorageProviderMetadata>,
|
|
46
|
+
// @InjectRepository(FieldMetadata)
|
|
47
|
+
// private readonly fieldMetadataRepo: Repository<FieldMetadata>,
|
|
48
|
+
private readonly modelMetadataRepo: ModelMetadataRepository,
|
|
49
|
+
private readonly mediaStorageProviderMetadataRepo: MediaStorageProviderMetadataRepository,
|
|
50
|
+
private readonly fieldMetadataRepo: FieldMetadataRepository,
|
|
43
51
|
readonly moduleRef: ModuleRef,
|
|
44
52
|
) {
|
|
45
53
|
super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'media', 'solid-core', moduleRef);
|
|
@@ -15,6 +15,7 @@ import { UpdateMenuItemMetadataDto } from '../dtos/update-menu-item-metadata.dto
|
|
|
15
15
|
import { ActiveUserData } from 'src/interfaces/active-user-data.interface';
|
|
16
16
|
import { ModuleMetadata } from '../entities/module-metadata.entity';
|
|
17
17
|
import { dasherize } from '@angular-devkit/core/src/utils/strings';
|
|
18
|
+
import { MenuItemMetadataRepository } from 'src/repository/menu-item-metadata.repository';
|
|
18
19
|
|
|
19
20
|
@Injectable()
|
|
20
21
|
export class MenuItemMetadataService extends CRUDService<MenuItemMetadata> {
|
|
@@ -27,8 +28,9 @@ export class MenuItemMetadataService extends CRUDService<MenuItemMetadata> {
|
|
|
27
28
|
readonly crudHelperService: CrudHelperService,
|
|
28
29
|
@InjectEntityManager()
|
|
29
30
|
readonly entityManager: EntityManager,
|
|
30
|
-
@InjectRepository(MenuItemMetadata, 'default')
|
|
31
|
-
readonly repo: Repository<MenuItemMetadata>,
|
|
31
|
+
// @InjectRepository(MenuItemMetadata, 'default')
|
|
32
|
+
// readonly repo: Repository<MenuItemMetadata>,
|
|
33
|
+
readonly repo: MenuItemMetadataRepository,
|
|
32
34
|
readonly moduleRef: ModuleRef
|
|
33
35
|
|
|
34
36
|
) {
|
|
@@ -83,8 +85,9 @@ export class MenuItemMetadataService extends CRUDService<MenuItemMetadata> {
|
|
|
83
85
|
// },
|
|
84
86
|
// relations: ['module', 'parentMenuItem', 'action']
|
|
85
87
|
// });
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
+
const qb = await this.repo.createSecurityRuleAwareQueryBuilder('menuItem')
|
|
89
|
+
|
|
90
|
+
const menuItems = await qb
|
|
88
91
|
.leftJoinAndSelect('menuItem.module', 'module')
|
|
89
92
|
.leftJoinAndSelect('menuItem.parentMenuItem', 'parentMenuItem')
|
|
90
93
|
.leftJoinAndSelect('menuItem.action', 'action')
|