@solidstarters/solid-core 1.2.191 → 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/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/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,8 +1,12 @@
|
|
|
1
|
-
import { BadRequestException,
|
|
2
|
-
import { ConfigService
|
|
1
|
+
import { BadRequestException, NotFoundException } from "@nestjs/common";
|
|
2
|
+
import { ConfigService } from "@nestjs/config";
|
|
3
3
|
import { DiscoveryService, ModuleRef } from "@nestjs/core";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { isArray } from "class-validator";
|
|
5
|
+
import { CommonEntity, SolidBaseRepository } from "src";
|
|
6
|
+
import { ERROR_MESSAGES } from "src/constants/error-messages";
|
|
7
|
+
import { SUCCESS_MESSAGES } from "src/constants/success-messages";
|
|
8
|
+
import { EntityManager, FindOptionsWhere, In, IsNull, Not, QueryFailedError, SelectQueryBuilder } from "typeorm";
|
|
9
|
+
import { QueryDeepPartialEntity } from "typeorm/query-builder/QueryPartialEntity";
|
|
6
10
|
import { BasicFilterDto } from "../dtos/basic-filters.dto";
|
|
7
11
|
import { ComputedFieldValueType, RelationType, SelectionValueType, SolidFieldType } from "../dtos/create-field-metadata.dto";
|
|
8
12
|
import { MediaStorageProviderType } from "../dtos/create-media-storage-provider-metadata.dto";
|
|
@@ -31,16 +35,13 @@ import { UUIDFieldCrudManager } from "../helpers/field-crud-managers/UUIDFieldCr
|
|
|
31
35
|
import { FieldCrudManager, MediaWithFullUrl } from "../interfaces";
|
|
32
36
|
import { CrudHelperService } from "./crud-helper.service";
|
|
33
37
|
import { FileService } from "./file.service";
|
|
38
|
+
import { HashingService } from "./hashing.service";
|
|
34
39
|
import { getMediaStorageProvider } from "./mediaStorageProviders";
|
|
35
40
|
import { ModelMetadataService } from "./model-metadata.service";
|
|
36
41
|
import { ModuleMetadataService } from "./module-metadata.service";
|
|
37
|
-
import { isArray } from "class-validator";
|
|
38
|
-
import { ERROR_MESSAGES } from "src/constants/error-messages";
|
|
39
|
-
import { SUCCESS_MESSAGES } from "src/constants/success-messages";
|
|
40
42
|
import { RequestContextService } from "./request-context.service";
|
|
41
|
-
import { HashingService } from "./hashing.service";
|
|
42
43
|
|
|
43
|
-
export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDto, so we get the proper types in our service
|
|
44
|
+
export class CRUDService<T extends CommonEntity> { // Add two generic value i.e Person,CreatePersonDto, so we get the proper types in our service
|
|
44
45
|
|
|
45
46
|
constructor(
|
|
46
47
|
readonly modelMetadataService: ModelMetadataService,
|
|
@@ -50,7 +51,7 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
|
|
|
50
51
|
readonly discoveryService: DiscoveryService,
|
|
51
52
|
readonly crudHelperService: CrudHelperService,
|
|
52
53
|
readonly entityManager: EntityManager,
|
|
53
|
-
readonly repo:
|
|
54
|
+
readonly repo: SolidBaseRepository<T>,
|
|
54
55
|
readonly modelName: string,
|
|
55
56
|
readonly moduleName: string,
|
|
56
57
|
readonly moduleRef: ModuleRef,
|
|
@@ -87,7 +88,7 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
|
|
|
87
88
|
// 5. Save the entity
|
|
88
89
|
// For media, we need to use a storage provider and save the media, then save the associated uri against the entity or media table
|
|
89
90
|
const entity = this.repo.create(createDto);
|
|
90
|
-
const savedEntity = await this.repo.save(entity) as T;
|
|
91
|
+
const savedEntity = await this.repo.save(entity) as unknown as T;
|
|
91
92
|
|
|
92
93
|
// 6. Save the media
|
|
93
94
|
if (hasMediaFields) {
|
|
@@ -170,9 +171,8 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
|
|
|
170
171
|
}
|
|
171
172
|
const entity = await this.repo.findOne({
|
|
172
173
|
where: {
|
|
173
|
-
//@ts-ignore
|
|
174
174
|
id: id,
|
|
175
|
-
}
|
|
175
|
+
} as unknown as FindOptionsWhere<T>,
|
|
176
176
|
});
|
|
177
177
|
if (!entity) {
|
|
178
178
|
throw new Error(`Entity [${this.moduleName}.${this.modelName}] with id ${id} not found`);
|
|
@@ -231,10 +231,10 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
|
|
|
231
231
|
});
|
|
232
232
|
const entity = await this.repo.findOne({
|
|
233
233
|
where: {
|
|
234
|
-
//@ts-ignore
|
|
235
234
|
id: id,
|
|
236
|
-
}
|
|
237
|
-
}
|
|
235
|
+
} as unknown as FindOptionsWhere<T>,
|
|
236
|
+
}
|
|
237
|
+
);
|
|
238
238
|
if (!entity) {
|
|
239
239
|
throw new Error(`Entity [${this.moduleName}.${this.modelName}] with id ${id} not found`);
|
|
240
240
|
}
|
|
@@ -444,7 +444,7 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
|
|
|
444
444
|
requestContextService.setRequestFilter(basicFilterDto);
|
|
445
445
|
|
|
446
446
|
// Create above query on pincode table using query builder
|
|
447
|
-
var qb: SelectQueryBuilder<T> = this.repo.
|
|
447
|
+
var qb: SelectQueryBuilder<T> = await this.repo.createSecurityRuleAwareQueryBuilder(alias)
|
|
448
448
|
qb = this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias);
|
|
449
449
|
if (internationalisation && draftPublishWorkflow) {
|
|
450
450
|
qb = this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias, internationalisation, draftPublishWorkflow, this.moduleRef);
|
|
@@ -493,7 +493,7 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
|
|
|
493
493
|
// For each group, get the records and the count
|
|
494
494
|
for (const group of groupByResult) {
|
|
495
495
|
if (populateGroup) {
|
|
496
|
-
let groupByQb: SelectQueryBuilder<T> = this.repo.
|
|
496
|
+
let groupByQb: SelectQueryBuilder<T> = await this.repo.createSecurityRuleAwareQueryBuilder(alias);
|
|
497
497
|
groupByQb = this.crudHelperService.buildFilterQuery(groupByQb, groupFilter, alias);
|
|
498
498
|
groupByQb = this.crudHelperService.buildGroupByRecordsQuery(groupByQb, group, alias);
|
|
499
499
|
const [entities, count] = await groupByQb.getManyAndCount();
|
|
@@ -638,9 +638,8 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
|
|
|
638
638
|
|
|
639
639
|
let entity = await this.repo.findOne({
|
|
640
640
|
where: {
|
|
641
|
-
//@ts-ignore
|
|
642
641
|
id: id,
|
|
643
|
-
}
|
|
642
|
+
} as unknown as FindOptionsWhere<T>,
|
|
644
643
|
relations: normalizedPopulate,
|
|
645
644
|
select: fields,
|
|
646
645
|
});
|
|
@@ -688,7 +687,7 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
|
|
|
688
687
|
transformedDto = await fieldManager.transformForCreate(createDto);
|
|
689
688
|
}
|
|
690
689
|
const entity = this.repo.create(transformedDto);
|
|
691
|
-
entitiesForSave.push(entity as T);
|
|
690
|
+
entitiesForSave.push(entity as unknown as T);
|
|
692
691
|
}
|
|
693
692
|
// Save all entities in a single batch
|
|
694
693
|
const savedEntities = await this.repo.save(entitiesForSave) as T[];
|
|
@@ -729,9 +728,8 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
|
|
|
729
728
|
const id = ids[i]
|
|
730
729
|
const entity = await this.repo.findOne({
|
|
731
730
|
where: {
|
|
732
|
-
//@ts-ignore
|
|
733
731
|
id: id,
|
|
734
|
-
}
|
|
732
|
+
} as unknown as FindOptionsWhere<T>,
|
|
735
733
|
});
|
|
736
734
|
removedEntities.push(entity);
|
|
737
735
|
}
|
|
@@ -757,9 +755,8 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
|
|
|
757
755
|
|
|
758
756
|
const softDeletedRows = await this.repo.findOne({
|
|
759
757
|
where: {
|
|
760
|
-
//@ts-ignore
|
|
761
758
|
id, deletedAt: Not(IsNull())
|
|
762
|
-
}
|
|
759
|
+
} as unknown as FindOptionsWhere<T>,
|
|
763
760
|
withDeleted: true,
|
|
764
761
|
});
|
|
765
762
|
|
|
@@ -768,9 +765,9 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
|
|
|
768
765
|
}
|
|
769
766
|
|
|
770
767
|
await this.repo.update(id, {
|
|
771
|
-
//@ts-ignore
|
|
772
768
|
deletedAt: null, deletedTracker: "not-deleted"
|
|
773
|
-
}
|
|
769
|
+
} as unknown as QueryDeepPartialEntity<T>
|
|
770
|
+
);
|
|
774
771
|
|
|
775
772
|
return { message: SUCCESS_MESSAGES.RECORD_RECOVERED, data: softDeletedRows };
|
|
776
773
|
} catch (error) {
|
|
@@ -802,10 +799,9 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
|
|
|
802
799
|
// Find soft-deleted records matching the given IDs
|
|
803
800
|
const softDeletedRows = await this.repo.find({
|
|
804
801
|
where: {
|
|
805
|
-
//@ts-ignore
|
|
806
802
|
id: In(ids),
|
|
807
803
|
deletedAt: Not(IsNull()),
|
|
808
|
-
}
|
|
804
|
+
} as unknown as FindOptionsWhere<T>,
|
|
809
805
|
withDeleted: true,
|
|
810
806
|
});
|
|
811
807
|
|
|
@@ -815,9 +811,8 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
|
|
|
815
811
|
|
|
816
812
|
// Recover the specific records by setting deletedAt to null
|
|
817
813
|
await this.repo.update(
|
|
818
|
-
|
|
819
|
-
{
|
|
820
|
-
{ deletedAt: null, deletedTracker: "not-deleted" }
|
|
814
|
+
{ id: In(ids) } as unknown as FindOptionsWhere<T>,
|
|
815
|
+
{ deletedAt: null, deletedTracker: "not-deleted" } as unknown as QueryDeepPartialEntity<T>
|
|
821
816
|
);
|
|
822
817
|
|
|
823
818
|
return { message: SUCCESS_MESSAGES.SELECTED_RECORDS_RECOVERED, recoveredIds: ids };
|
|
@@ -12,6 +12,7 @@ import { CrudHelperService } from 'src/services/crud-helper.service';
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
import { DashboardQuestionSqlDatasetConfig } from '../entities/dashboard-question-sql-dataset-config.entity';
|
|
15
|
+
import { DashboardQuestionSqlDatasetConfigRepository } from 'src/repository/dashboard-question-sql-dataset-config.repository';
|
|
15
16
|
|
|
16
17
|
@Injectable()
|
|
17
18
|
export class DashboardQuestionSqlDatasetConfigService extends CRUDService<DashboardQuestionSqlDatasetConfig>{
|
|
@@ -24,8 +25,9 @@ export class DashboardQuestionSqlDatasetConfigService extends CRUDService<Dashbo
|
|
|
24
25
|
readonly crudHelperService: CrudHelperService,
|
|
25
26
|
@InjectEntityManager()
|
|
26
27
|
readonly entityManager: EntityManager,
|
|
27
|
-
@InjectRepository(DashboardQuestionSqlDatasetConfig, 'default')
|
|
28
|
-
readonly repo: Repository<DashboardQuestionSqlDatasetConfig>,
|
|
28
|
+
// @InjectRepository(DashboardQuestionSqlDatasetConfig, 'default')
|
|
29
|
+
// readonly repo: Repository<DashboardQuestionSqlDatasetConfig>,
|
|
30
|
+
readonly repo: DashboardQuestionSqlDatasetConfigRepository,
|
|
29
31
|
readonly moduleRef: ModuleRef
|
|
30
32
|
|
|
31
33
|
) {
|
|
@@ -17,6 +17,7 @@ import { DashboardQuestion } from '../entities/dashboard-question.entity';
|
|
|
17
17
|
import { SqlExpression, SqlExpressionOperator } from './question-data-providers/chartjs-sql-data-provider.service';
|
|
18
18
|
import { DashboardService } from './dashboard.service';
|
|
19
19
|
import { Dashboard } from 'src/entities/dashboard.entity';
|
|
20
|
+
import { DashboardQuestionRepository } from 'src/repository/dashboard-question.repository';
|
|
20
21
|
|
|
21
22
|
enum SOURCE_TYPE {
|
|
22
23
|
SQL = 'sql',
|
|
@@ -39,8 +40,9 @@ export class DashboardQuestionService extends CRUDService<DashboardQuestion> {
|
|
|
39
40
|
readonly crudHelperService: CrudHelperService,
|
|
40
41
|
@InjectEntityManager()
|
|
41
42
|
readonly entityManager: EntityManager,
|
|
42
|
-
@InjectRepository(DashboardQuestion, 'default')
|
|
43
|
-
readonly repo: Repository<DashboardQuestion>,
|
|
43
|
+
// @InjectRepository(DashboardQuestion, 'default')
|
|
44
|
+
// readonly repo: Repository<DashboardQuestion>,
|
|
45
|
+
readonly repo: DashboardQuestionRepository,
|
|
44
46
|
readonly moduleRef: ModuleRef,
|
|
45
47
|
readonly solidRegistry: SolidRegistry, // Assuming solidRegistry is injected for data providers
|
|
46
48
|
) {
|
|
@@ -12,6 +12,8 @@ import { ModuleMetadataService } from 'src/services/module-metadata.service';
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
import { DashboardVariable } from '../entities/dashboard-variable.entity';
|
|
15
|
+
import { Dashboard } from 'src/entities/dashboard.entity';
|
|
16
|
+
import { DashboardVariableRepository } from 'src/repository/dashboard-variable.repository';
|
|
15
17
|
|
|
16
18
|
@Injectable()
|
|
17
19
|
export class DashboardVariableService extends CRUDService<DashboardVariable> {
|
|
@@ -25,8 +27,9 @@ export class DashboardVariableService extends CRUDService<DashboardVariable> {
|
|
|
25
27
|
readonly crudHelperService: CrudHelperService,
|
|
26
28
|
@InjectEntityManager()
|
|
27
29
|
readonly entityManager: EntityManager,
|
|
28
|
-
@InjectRepository(DashboardVariable, 'default')
|
|
29
|
-
readonly repo: Repository<DashboardVariable>,
|
|
30
|
+
// @InjectRepository(DashboardVariable, 'default')
|
|
31
|
+
// readonly repo: Repository<DashboardVariable>,
|
|
32
|
+
readonly repo: DashboardVariableRepository,
|
|
30
33
|
readonly moduleRef: ModuleRef,
|
|
31
34
|
) {
|
|
32
35
|
super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'dashboardVariable', 'solid-core', moduleRef);
|
|
@@ -15,6 +15,7 @@ import { FileService } from './file.service';
|
|
|
15
15
|
import { MediaService } from './media.service';
|
|
16
16
|
import { DiscoveryService, ModuleRef } from '@nestjs/core';
|
|
17
17
|
import { CrudHelperService } from './crud-helper.service';
|
|
18
|
+
import { EmailTemplateRepository } from 'src/repository/email-template.repository';
|
|
18
19
|
|
|
19
20
|
@Injectable()
|
|
20
21
|
export class EmailTemplateService extends CRUDService<EmailTemplate>{
|
|
@@ -29,8 +30,9 @@ export class EmailTemplateService extends CRUDService<EmailTemplate>{
|
|
|
29
30
|
readonly crudHelperService: CrudHelperService,
|
|
30
31
|
@InjectEntityManager()
|
|
31
32
|
readonly entityManager: EntityManager,
|
|
32
|
-
@InjectRepository(EmailTemplate, 'default')
|
|
33
|
-
readonly repo: Repository<EmailTemplate>,
|
|
33
|
+
// @InjectRepository(EmailTemplate, 'default')
|
|
34
|
+
// readonly repo: Repository<EmailTemplate>,
|
|
35
|
+
readonly repo: EmailTemplateRepository,
|
|
34
36
|
readonly moduleRef: ModuleRef,
|
|
35
37
|
) {
|
|
36
38
|
super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'emailTemplate', 'app-builder', moduleRef);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Injectable } from '@nestjs/common';
|
|
1
|
+
import { ForbiddenException, Injectable } from '@nestjs/common';
|
|
2
2
|
import { DiscoveryService, ModuleRef } from "@nestjs/core";
|
|
3
3
|
import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';
|
|
4
4
|
import { EntityManager, Repository } from 'typeorm';
|
|
@@ -19,11 +19,28 @@ import { Readable } from 'stream';
|
|
|
19
19
|
import { ExportTemplate } from '../entities/export-template.entity';
|
|
20
20
|
import { ExportTransactionFileInfo, ExportTransactionService } from './export-transaction.service';
|
|
21
21
|
import { UpdateExportTemplateDto } from 'src/dtos/update-export-template.dto';
|
|
22
|
+
import { ExportTemplateRepository } from 'src/repository/export-template.repository';
|
|
23
|
+
import { ActiveUserData } from 'src/interfaces/active-user-data.interface';
|
|
24
|
+
import {upperFirst, camelCase} from 'lodash';
|
|
22
25
|
|
|
23
26
|
@Injectable()
|
|
24
27
|
export class ExportTemplateService extends CRUDService<ExportTemplate>{
|
|
25
|
-
async startExportSync(updateDto: UpdateExportTemplateDto, filters:any): Promise<ExportTransactionFileInfo> {
|
|
28
|
+
async startExportSync(updateDto: UpdateExportTemplateDto, filters:any, activeUser: ActiveUserData): Promise<ExportTransactionFileInfo> {
|
|
26
29
|
// Create the export transaction entry, with status 'started'
|
|
30
|
+
const modelMetadata = await this.modelMetadataService.findOne(updateDto?.modelMetadataId);
|
|
31
|
+
const modelName = upperFirst(camelCase(modelMetadata.singularName));
|
|
32
|
+
const permissionKey = `${modelName}Controller.findMany`;
|
|
33
|
+
|
|
34
|
+
const userPermissions = activeUser.permissions ?? [];
|
|
35
|
+
const hasPermission = Array.isArray(userPermissions)
|
|
36
|
+
? userPermissions.includes(permissionKey)
|
|
37
|
+
: userPermissions[permissionKey] === true;
|
|
38
|
+
|
|
39
|
+
if (!hasPermission) {
|
|
40
|
+
throw new ForbiddenException(
|
|
41
|
+
`Missing permission: ${permissionKey}`
|
|
42
|
+
);
|
|
43
|
+
}
|
|
27
44
|
const exportTransaction: CreateExportTransactionDto = await this.exportTransactionService.toDto({
|
|
28
45
|
datetime: new Date(),
|
|
29
46
|
status: 'started',
|
|
@@ -62,8 +79,9 @@ export class ExportTemplateService extends CRUDService<ExportTemplate>{
|
|
|
62
79
|
readonly crudHelperService: CrudHelperService,
|
|
63
80
|
@InjectEntityManager()
|
|
64
81
|
readonly entityManager: EntityManager,
|
|
65
|
-
@InjectRepository(ExportTemplate, 'default')
|
|
66
|
-
readonly repo: Repository<ExportTemplate>,
|
|
82
|
+
// @InjectRepository(ExportTemplate, 'default')
|
|
83
|
+
// readonly repo: Repository<ExportTemplate>,
|
|
84
|
+
readonly repo: ExportTemplateRepository,
|
|
67
85
|
readonly exportTransactionService: ExportTransactionService,
|
|
68
86
|
readonly moduleRef: ModuleRef
|
|
69
87
|
) {
|
|
@@ -30,6 +30,10 @@ import { ModelMetadata } from 'src/entities/model-metadata.entity';
|
|
|
30
30
|
import { UpdateExportTemplateDto } from 'src/dtos/update-export-template.dto';
|
|
31
31
|
import { ERROR_MESSAGES } from 'src/constants/error-messages';
|
|
32
32
|
import { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.service';
|
|
33
|
+
import { ExportTransactionRepository } from 'src/repository/export-transaction.repository';
|
|
34
|
+
import { Field } from 'mysql2/typings/mysql/lib/parsers/typeCast';
|
|
35
|
+
import { FieldMetadataRepository } from 'src/repository/field-metadata.repository';
|
|
36
|
+
import { ModelMetadataRepository } from 'src/repository/model-metadata.repository';
|
|
33
37
|
|
|
34
38
|
const EXPORT_CHUNK_SIZE = 100;
|
|
35
39
|
enum ExportStatus {
|
|
@@ -63,16 +67,19 @@ export class ExportTransactionService extends CRUDService<ExportTransaction> {
|
|
|
63
67
|
readonly crudHelperService: CrudHelperService,
|
|
64
68
|
@InjectEntityManager()
|
|
65
69
|
readonly entityManager: EntityManager,
|
|
66
|
-
@InjectRepository(ExportTransaction, 'default')
|
|
67
|
-
readonly repo: Repository<ExportTransaction>,
|
|
70
|
+
// @InjectRepository(ExportTransaction, 'default')
|
|
71
|
+
// readonly repo: Repository<ExportTransaction>,
|
|
72
|
+
readonly repo: ExportTransactionRepository,
|
|
68
73
|
readonly introspectService: SolidIntrospectService,
|
|
69
74
|
readonly excelService: ExcelService,
|
|
70
75
|
readonly csvService: CsvService,
|
|
71
76
|
// readonly fieldMetadataService: FieldMetadataService,
|
|
72
|
-
@InjectRepository(FieldMetadata, 'default')
|
|
73
|
-
readonly fieldRepo: Repository<FieldMetadata>,
|
|
74
|
-
@InjectRepository(ModelMetadata, 'default')
|
|
75
|
-
readonly
|
|
77
|
+
// @InjectRepository(FieldMetadata, 'default')
|
|
78
|
+
// readonly fieldRepo: Repository<FieldMetadata>,
|
|
79
|
+
// @InjectRepository(ModelMetadata, 'default')
|
|
80
|
+
// readonly modelMetadataRepo: Repository<ModelMetadata>,
|
|
81
|
+
readonly fieldRepo: FieldMetadataRepository,
|
|
82
|
+
readonly modelMetadataRepo: ModelMetadataRepository,
|
|
76
83
|
readonly moduleRef: ModuleRef,
|
|
77
84
|
private readonly modelMetadataHelperService: ModelMetadataHelperService,
|
|
78
85
|
|
|
@@ -85,7 +92,7 @@ export class ExportTransactionService extends CRUDService<ExportTransaction> {
|
|
|
85
92
|
try {
|
|
86
93
|
// const loadedExportTransaction = await this.loadExportTransaction(id);
|
|
87
94
|
// from updateDto, get modelId and get modelMetadata
|
|
88
|
-
const modeldata = await this.
|
|
95
|
+
const modeldata = await this.modelMetadataRepo.findOne({
|
|
89
96
|
where: { id: updateDto?.modelMetadataId },
|
|
90
97
|
relations: { fields: true },
|
|
91
98
|
})
|
|
@@ -109,7 +116,7 @@ export class ExportTransactionService extends CRUDService<ExportTransaction> {
|
|
|
109
116
|
try {
|
|
110
117
|
// const loadedExportTransaction = await this.loadExportTransaction(id)
|
|
111
118
|
// from updateDto, get modelId and get modelMetadata
|
|
112
|
-
const modeldata = await this.
|
|
119
|
+
const modeldata = await this.modelMetadataRepo.findOne({
|
|
113
120
|
where: { id: updateDto?.modelMetadataId },
|
|
114
121
|
relations: { fields: true },
|
|
115
122
|
})
|
|
@@ -226,7 +233,7 @@ export class ExportTransactionService extends CRUDService<ExportTransaction> {
|
|
|
226
233
|
const relatedModelsUserKeyMap = new Map<string, string>();
|
|
227
234
|
for (const field of modelFields) {
|
|
228
235
|
if (field.relationType && field.relationCoModelSingularName) {
|
|
229
|
-
const relatedModelMetadata = await this.
|
|
236
|
+
const relatedModelMetadata = await this.modelMetadataRepo.findOne({
|
|
230
237
|
where: { singularName: field.relationCoModelSingularName },
|
|
231
238
|
relations: ['userKeyField'],
|
|
232
239
|
});
|
|
@@ -221,7 +221,7 @@ export class FieldMetadataService implements OnApplicationBootstrap {
|
|
|
221
221
|
let { limit, offset, populateMedia } = basicFilterDto;
|
|
222
222
|
|
|
223
223
|
// Create above query on pincode table using query builder
|
|
224
|
-
var qb: SelectQueryBuilder<FieldMetadata> = this.fieldMetadataRepo.
|
|
224
|
+
var qb: SelectQueryBuilder<FieldMetadata> = await this.fieldMetadataRepo.createSecurityRuleAwareQueryBuilder(alias)
|
|
225
225
|
qb = await this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias);
|
|
226
226
|
|
|
227
227
|
// Get the records and the count
|
|
@@ -12,6 +12,7 @@ import { CrudHelperService } from 'src/services/crud-helper.service';
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
import { ImportTransactionErrorLog } from '../entities/import-transaction-error-log.entity';
|
|
15
|
+
import { ImportTransactionErrorLogRepository } from 'src/repository/import-transaction-error-log.repository';
|
|
15
16
|
|
|
16
17
|
@Injectable()
|
|
17
18
|
export class ImportTransactionErrorLogService extends CRUDService<ImportTransactionErrorLog>{
|
|
@@ -24,8 +25,9 @@ export class ImportTransactionErrorLogService extends CRUDService<ImportTransact
|
|
|
24
25
|
readonly crudHelperService: CrudHelperService,
|
|
25
26
|
@InjectEntityManager()
|
|
26
27
|
readonly entityManager: EntityManager,
|
|
27
|
-
@InjectRepository(ImportTransactionErrorLog, 'default')
|
|
28
|
-
readonly repo: Repository<ImportTransactionErrorLog>,
|
|
28
|
+
// @InjectRepository(ImportTransactionErrorLog, 'default')
|
|
29
|
+
// readonly repo: Repository<ImportTransactionErrorLog>,
|
|
30
|
+
readonly repo: ImportTransactionErrorLogRepository,
|
|
29
31
|
readonly moduleRef: ModuleRef
|
|
30
32
|
|
|
31
33
|
) {
|
|
@@ -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
|
}
|