rez_core 6.5.59 → 6.5.61
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/app.module.js +3 -5
- package/dist/app.module.js.map +1 -1
- package/dist/core.module.js +38 -63
- package/dist/core.module.js.map +1 -1
- package/dist/migrations/1732612800000-AddEntityJsonGinIndex.d.ts +6 -0
- package/dist/migrations/1732612800000-AddEntityJsonGinIndex.js +32 -0
- package/dist/migrations/1732612800000-AddEntityJsonGinIndex.js.map +1 -0
- package/dist/module/auth/strategies/jwt.strategy.d.ts +1 -2
- package/dist/module/auth/strategies/jwt.strategy.js +2 -3
- package/dist/module/auth/strategies/jwt.strategy.js.map +1 -1
- package/dist/module/dashboard/dashboard.module.js +1 -1
- package/dist/module/dashboard/dashboard.module.js.map +1 -1
- package/dist/module/dashboard/service/dashboard.service.js +2 -1
- package/dist/module/dashboard/service/dashboard.service.js.map +1 -1
- package/dist/module/enterprise/controller/organization.controller.d.ts +4 -12
- package/dist/module/enterprise/controller/organization.controller.js +8 -64
- package/dist/module/enterprise/controller/organization.controller.js.map +1 -1
- package/dist/module/enterprise/enterprise.module.js +15 -10
- package/dist/module/enterprise/enterprise.module.js.map +1 -1
- package/dist/module/enterprise/entity/enterprise.entity.d.ts +3 -1
- package/dist/module/enterprise/entity/enterprise.entity.js +12 -4
- package/dist/module/enterprise/entity/enterprise.entity.js.map +1 -1
- package/dist/module/enterprise/entity/organization-app-mapping.entity.d.ts +1 -6
- package/dist/module/enterprise/entity/organization-app-mapping.entity.js +4 -21
- package/dist/module/enterprise/entity/organization-app-mapping.entity.js.map +1 -1
- package/dist/module/enterprise/entity/organization.entity.d.ts +17 -3
- package/dist/module/enterprise/entity/organization.entity.js +73 -11
- package/dist/module/enterprise/entity/organization.entity.js.map +1 -1
- package/dist/module/enterprise/repository/enterprise.repository.d.ts +2 -4
- package/dist/module/enterprise/repository/enterprise.repository.js +4 -19
- package/dist/module/enterprise/repository/enterprise.repository.js.map +1 -1
- package/dist/module/enterprise/service/brand.service.d.ts +3 -0
- package/dist/module/enterprise/service/brand.service.js +17 -0
- package/dist/module/enterprise/service/brand.service.js.map +1 -1
- package/dist/module/enterprise/service/enterprise.service.d.ts +2 -2
- package/dist/module/enterprise/service/enterprise.service.js +4 -6
- package/dist/module/enterprise/service/enterprise.service.js.map +1 -1
- package/dist/module/enterprise/service/organization.service.d.ts +6 -6
- package/dist/module/enterprise/service/organization.service.js +27 -109
- package/dist/module/enterprise/service/organization.service.js.map +1 -1
- package/dist/module/entity_json/controller/entity_json.controller.d.ts +2 -9
- package/dist/module/entity_json/controller/entity_json.controller.js.map +1 -1
- package/dist/module/entity_json/entity/entityJson.entity.d.ts +2 -1
- package/dist/module/entity_json/entity/entityJson.entity.js +5 -1
- package/dist/module/entity_json/entity/entityJson.entity.js.map +1 -1
- package/dist/module/entity_json/entity_json.module.js +7 -2
- package/dist/module/entity_json/entity_json.module.js.map +1 -1
- package/dist/module/entity_json/service/entity_json.service.d.ts +2 -10
- package/dist/module/entity_json/service/entity_json.service.js +101 -25
- package/dist/module/entity_json/service/entity_json.service.js.map +1 -1
- package/dist/module/filter/controller/filter.controller.d.ts +12 -0
- package/dist/module/filter/controller/filter.controller.js +1 -1
- package/dist/module/filter/controller/filter.controller.js.map +1 -1
- package/dist/module/filter/filter.module.js +11 -2
- package/dist/module/filter/filter.module.js.map +1 -1
- package/dist/module/filter/service/filter.service.d.ts +38 -2
- package/dist/module/filter/service/filter.service.js +43 -50
- package/dist/module/filter/service/filter.service.js.map +1 -1
- package/dist/module/filter/service/flatjson-filter.service.d.ts +32 -0
- package/dist/module/filter/service/flatjson-filter.service.js +632 -0
- package/dist/module/filter/service/flatjson-filter.service.js.map +1 -0
- package/dist/module/filter/service/saved-filter.service.d.ts +3 -2
- package/dist/module/filter/service/saved-filter.service.js +14 -18
- package/dist/module/filter/service/saved-filter.service.js.map +1 -1
- package/dist/module/integration/service/integration.service.d.ts +1 -0
- package/dist/module/integration/service/integration.service.js +2 -1
- package/dist/module/integration/service/integration.service.js.map +1 -1
- package/dist/module/integration/service/wrapper.service.js +1 -0
- package/dist/module/integration/service/wrapper.service.js.map +1 -1
- package/dist/module/layout/controller/layout.controller.d.ts +3 -1
- package/dist/module/layout/controller/layout.controller.js +7 -3
- package/dist/module/layout/controller/layout.controller.js.map +1 -1
- package/dist/module/layout/entity/header-section.entity.d.ts +2 -0
- package/dist/module/layout/entity/header-section.entity.js +8 -0
- package/dist/module/layout/entity/header-section.entity.js.map +1 -1
- package/dist/module/layout/layout.module.js +2 -1
- package/dist/module/layout/layout.module.js.map +1 -1
- package/dist/module/layout/repository/header-section.repository.d.ts +1 -0
- package/dist/module/layout/repository/header-section.repository.js +5 -0
- package/dist/module/layout/repository/header-section.repository.js.map +1 -1
- package/dist/module/layout/service/header-section.service.d.ts +1 -1
- package/dist/module/layout/service/header-section.service.js +1 -1
- package/dist/module/layout/service/header-section.service.js.map +1 -1
- package/dist/module/linked_attributes/controller/linked_attributes.controller.d.ts +41 -0
- package/dist/module/linked_attributes/controller/linked_attributes.controller.js +90 -0
- package/dist/module/linked_attributes/controller/linked_attributes.controller.js.map +1 -1
- package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.d.ts +13 -0
- package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.js +64 -0
- package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.js.map +1 -0
- package/dist/module/linked_attributes/linked_attributes.module.js +8 -1
- package/dist/module/linked_attributes/linked_attributes.module.js.map +1 -1
- package/dist/module/linked_attributes/service/linked_attributes.service.d.ts +65 -1
- package/dist/module/linked_attributes/service/linked_attributes.service.js +287 -2
- package/dist/module/linked_attributes/service/linked_attributes.service.js.map +1 -1
- package/dist/module/listmaster/service/list-master.service.d.ts +1 -14
- package/dist/module/listmaster/service/list-master.service.js +44 -217
- package/dist/module/listmaster/service/list-master.service.js.map +1 -1
- package/dist/module/meta/controller/app-master.controller.js.map +1 -0
- package/dist/module/meta/controller/attribute-master.controller.d.ts +3 -0
- package/dist/module/meta/controller/attribute-master.controller.js +12 -0
- package/dist/module/meta/controller/attribute-master.controller.js.map +1 -1
- package/dist/module/meta/controller/entity-dynamic.controller.js +3 -6
- package/dist/module/meta/controller/entity-dynamic.controller.js.map +1 -1
- package/dist/module/meta/controller/entity.controller.js +1 -1
- package/dist/module/meta/controller/entity.controller.js.map +1 -1
- package/dist/module/meta/controller/meta.controller.d.ts +6 -1
- package/dist/module/meta/controller/meta.controller.js +19 -1
- package/dist/module/meta/controller/meta.controller.js.map +1 -1
- package/dist/module/meta/entity/app-master.entity.d.ts +13 -0
- package/dist/module/{app_master → meta}/entity/app-master.entity.js +12 -30
- package/dist/module/meta/entity/app-master.entity.js.map +1 -0
- package/dist/module/meta/entity/attribute-master.entity.d.ts +0 -4
- package/dist/module/meta/entity/attribute-master.entity.js +0 -16
- package/dist/module/meta/entity/attribute-master.entity.js.map +1 -1
- package/dist/module/meta/entity/entity-master.entity.d.ts +1 -0
- package/dist/module/meta/entity/entity-master.entity.js +8 -1
- package/dist/module/meta/entity/entity-master.entity.js.map +1 -1
- package/dist/module/meta/entity.module.js +14 -3
- package/dist/module/meta/entity.module.js.map +1 -1
- package/dist/module/{app_master → meta}/repository/app-master.repository.d.ts +2 -2
- package/dist/module/{app_master → meta}/repository/app-master.repository.js +4 -4
- package/dist/module/meta/repository/app-master.repository.js.map +1 -0
- package/dist/module/meta/service/app-master.service.js.map +1 -0
- package/dist/module/meta/service/attribute-master.service.d.ts +6 -1
- package/dist/module/meta/service/attribute-master.service.js +22 -2
- package/dist/module/meta/service/attribute-master.service.js.map +1 -1
- package/dist/module/meta/service/entity-dynamic.service.d.ts +12 -9
- package/dist/module/meta/service/entity-dynamic.service.js +22 -20
- package/dist/module/meta/service/entity-dynamic.service.js.map +1 -1
- package/dist/module/meta/service/entity-master.service.js +1 -0
- package/dist/module/meta/service/entity-master.service.js.map +1 -1
- package/dist/module/meta/service/entity-relation.service.d.ts +4 -3
- package/dist/module/meta/service/entity-relation.service.js +10 -4
- package/dist/module/meta/service/entity-relation.service.js.map +1 -1
- package/dist/module/meta/service/entity-service-impl.service.d.ts +2 -2
- package/dist/module/meta/service/entity-service-impl.service.js +15 -11
- package/dist/module/meta/service/entity-service-impl.service.js.map +1 -1
- package/dist/module/meta/service/entity-table.service.d.ts +5 -4
- package/dist/module/meta/service/entity-table.service.js +45 -24
- package/dist/module/meta/service/entity-table.service.js.map +1 -1
- package/dist/module/meta/service/populate-meta.service.d.ts +13 -0
- package/dist/module/{enterprise → meta}/service/populate-meta.service.js +8 -2
- package/dist/module/meta/service/populate-meta.service.js.map +1 -0
- package/dist/module/meta/service/resolver.service.d.ts +1 -1
- package/dist/module/meta/service/resolver.service.js +6 -3
- package/dist/module/meta/service/resolver.service.js.map +1 -1
- package/dist/module/module/controller/module-access.controller.d.ts +4 -3
- package/dist/module/module/controller/module-access.controller.js +8 -13
- package/dist/module/module/controller/module-access.controller.js.map +1 -1
- package/dist/module/module/entity/menu.entity.d.ts +3 -6
- package/dist/module/module/entity/menu.entity.js +10 -19
- package/dist/module/module/entity/menu.entity.js.map +1 -1
- package/dist/module/module/entity/module-access.entity.d.ts +1 -15
- package/dist/module/module/entity/module-access.entity.js +3 -49
- package/dist/module/module/entity/module-access.entity.js.map +1 -1
- package/dist/module/module/entity/module-action.entity.d.ts +2 -4
- package/dist/module/module/entity/module-action.entity.js +6 -11
- package/dist/module/module/entity/module-action.entity.js.map +1 -1
- package/dist/module/module/entity/module.entity.d.ts +5 -3
- package/dist/module/module/entity/module.entity.js +18 -8
- package/dist/module/module/entity/module.entity.js.map +1 -1
- package/dist/module/module/module.module.d.ts +1 -1
- package/dist/module/module/module.module.js +7 -5
- package/dist/module/module/module.module.js.map +1 -1
- package/dist/module/module/repository/menu.repository.d.ts +3 -3
- package/dist/module/module/repository/menu.repository.js +27 -38
- package/dist/module/module/repository/menu.repository.js.map +1 -1
- package/dist/module/module/repository/module-access.repository.d.ts +6 -6
- package/dist/module/module/repository/module-access.repository.js +50 -100
- package/dist/module/module/repository/module-access.repository.js.map +1 -1
- package/dist/module/module/service/menu.service.d.ts +4 -2
- package/dist/module/module/service/menu.service.js +10 -7
- package/dist/module/module/service/menu.service.js.map +1 -1
- package/dist/module/module/service/module-access.service.d.ts +10 -7
- package/dist/module/module/service/module-access.service.js +24 -22
- package/dist/module/module/service/module-access.service.js.map +1 -1
- package/dist/module/notification/entity/notification.entity.d.ts +2 -17
- package/dist/module/notification/entity/notification.entity.js +2 -68
- package/dist/module/notification/entity/notification.entity.js.map +1 -1
- package/dist/module/notification/notification.module.js +4 -3
- package/dist/module/notification/notification.module.js.map +1 -1
- package/dist/module/notification/service/email.service.d.ts +0 -1
- package/dist/module/notification/service/email.service.js +0 -14
- package/dist/module/notification/service/email.service.js.map +1 -1
- package/dist/module/notification/service/notification.service.d.ts +3 -1
- package/dist/module/notification/service/notification.service.js +5 -2
- package/dist/module/notification/service/notification.service.js.map +1 -1
- package/dist/module/notification/service/otp.service.d.ts +2 -2
- package/dist/module/notification/service/otp.service.js +5 -4
- package/dist/module/notification/service/otp.service.js.map +1 -1
- package/dist/module/user/controller/login.controller.d.ts +3 -1
- package/dist/module/user/controller/login.controller.js +6 -2
- package/dist/module/user/controller/login.controller.js.map +1 -1
- package/dist/module/user/controller/user.controller.d.ts +2 -0
- package/dist/module/user/controller/user.controller.js +13 -0
- package/dist/module/user/controller/user.controller.js.map +1 -1
- package/dist/module/user/dto/create-user.dto.d.ts +3 -6
- package/dist/module/user/dto/create-user.dto.js +11 -17
- package/dist/module/user/dto/create-user.dto.js.map +1 -1
- package/dist/module/user/entity/role.entity.d.ts +6 -18
- package/dist/module/user/entity/role.entity.js +19 -64
- package/dist/module/user/entity/role.entity.js.map +1 -1
- package/dist/module/user/entity/user-role-mapping.entity.d.ts +0 -10
- package/dist/module/user/entity/user-role-mapping.entity.js +1 -33
- package/dist/module/user/entity/user-role-mapping.entity.js.map +1 -1
- package/dist/module/user/entity/user-session.entity.d.ts +2 -0
- package/dist/module/user/entity/user-session.entity.js +20 -2
- package/dist/module/user/entity/user-session.entity.js.map +1 -1
- package/dist/module/user/entity/user.entity.d.ts +5 -17
- package/dist/module/user/entity/user.entity.js +15 -61
- package/dist/module/user/entity/user.entity.js.map +1 -1
- package/dist/module/user/repository/role.repository.d.ts +2 -7
- package/dist/module/user/repository/role.repository.js +8 -23
- package/dist/module/user/repository/role.repository.js.map +1 -1
- package/dist/module/user/repository/user-role-mapping.repository.d.ts +0 -1
- package/dist/module/user/repository/user-role-mapping.repository.js +0 -3
- package/dist/module/user/repository/user-role-mapping.repository.js.map +1 -1
- package/dist/module/user/repository/user.repository.d.ts +2 -5
- package/dist/module/user/repository/user.repository.js +7 -26
- package/dist/module/user/repository/user.repository.js.map +1 -1
- package/dist/module/user/repository/userSession.repository.d.ts +0 -1
- package/dist/module/user/repository/userSession.repository.js +0 -3
- package/dist/module/user/repository/userSession.repository.js.map +1 -1
- package/dist/module/user/service/login.service.d.ts +5 -3
- package/dist/module/user/service/login.service.js +42 -43
- package/dist/module/user/service/login.service.js.map +1 -1
- package/dist/module/user/service/role.service.d.ts +11 -24
- package/dist/module/user/service/role.service.js +40 -54
- package/dist/module/user/service/role.service.js.map +1 -1
- package/dist/module/user/service/user-role-mapping.service.d.ts +0 -2
- package/dist/module/user/service/user-role-mapping.service.js +0 -6
- package/dist/module/user/service/user-role-mapping.service.js.map +1 -1
- package/dist/module/user/service/user-session.service.d.ts +4 -3
- package/dist/module/user/service/user-session.service.js +11 -10
- package/dist/module/user/service/user-session.service.js.map +1 -1
- package/dist/module/user/service/user.service.d.ts +22 -33
- package/dist/module/user/service/user.service.js +58 -66
- package/dist/module/user/service/user.service.js.map +1 -1
- package/dist/module/user/user.module.js +7 -2
- package/dist/module/user/user.module.js.map +1 -1
- package/dist/module/workflow/repository/action-data.repository.d.ts +1 -1
- package/dist/module/workflow/repository/action-data.repository.js +8 -6
- package/dist/module/workflow/repository/action-data.repository.js.map +1 -1
- package/dist/module/workflow/repository/action.repository.d.ts +1 -1
- package/dist/module/workflow/repository/action.repository.js +10 -10
- package/dist/module/workflow/repository/action.repository.js.map +1 -1
- package/dist/module/workflow/repository/form-master.repository.d.ts +1 -1
- package/dist/module/workflow/repository/form-master.repository.js +2 -2
- package/dist/module/workflow/repository/form-master.repository.js.map +1 -1
- package/dist/module/workflow/service/action-data.service.js +2 -1
- package/dist/module/workflow/service/action-data.service.js.map +1 -1
- package/dist/module/workflow/service/action.service.js +2 -2
- package/dist/module/workflow/service/action.service.js.map +1 -1
- package/dist/module/workflow/service/comm-template.service.js +2 -0
- package/dist/module/workflow/service/comm-template.service.js.map +1 -1
- package/dist/module/workflow/service/entity-modification.service.js +1 -0
- package/dist/module/workflow/service/entity-modification.service.js.map +1 -1
- package/dist/module/workflow/service/form-master.service.js +2 -2
- package/dist/module/workflow/service/form-master.service.js.map +1 -1
- package/dist/module/workflow/service/populate-workflow.service.d.ts +1 -1
- package/dist/module/workflow/service/populate-workflow.service.js +1 -1
- package/dist/module/workflow/service/populate-workflow.service.js.map +1 -1
- package/dist/module/workflow/service/task.service.js +4 -1
- package/dist/module/workflow/service/task.service.js.map +1 -1
- package/dist/module/workflow/service/workflow-meta.service.js +7 -2
- package/dist/module/workflow/service/workflow-meta.service.js.map +1 -1
- package/dist/module/workflow/service/workflow.service.js +2 -2
- package/dist/module/workflow/service/workflow.service.js.map +1 -1
- package/dist/module/workflow/workflow.module.js +0 -2
- package/dist/module/workflow/workflow.module.js.map +1 -1
- package/dist/module/workflow-automation/service/workflow-automation.service.js +6 -11
- package/dist/module/workflow-automation/service/workflow-automation.service.js.map +1 -1
- package/dist/module/workflow-automation/workflow-automation.module.js +1 -3
- package/dist/module/workflow-automation/workflow-automation.module.js.map +1 -1
- package/dist/module/workflow-schedule/service/workflow-schedule.service.js +2 -0
- package/dist/module/workflow-schedule/service/workflow-schedule.service.js.map +1 -1
- package/dist/table.config.d.ts +5 -3
- package/dist/table.config.js +3 -3
- package/dist/table.config.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/app.module.ts +5 -7
- package/src/core.module.ts +44 -58
- package/src/migrations/1732612800000-AddEntityJsonGinIndex.ts +41 -0
- package/src/module/auth/strategies/jwt.strategy.ts +2 -4
- package/src/module/dashboard/dashboard.module.ts +3 -3
- package/src/module/dashboard/service/dashboard.service.ts +2 -1
- package/src/module/enterprise/controller/organization.controller.ts +4 -60
- package/src/module/enterprise/enterprise.module.ts +18 -16
- package/src/module/enterprise/entity/enterprise.entity.ts +11 -5
- package/src/module/enterprise/entity/organization-app-mapping.entity.ts +4 -18
- package/src/module/enterprise/entity/organization.entity.ts +58 -11
- package/src/module/enterprise/repository/enterprise.repository.ts +4 -26
- package/src/module/enterprise/service/brand.service.ts +5 -75
- package/src/module/enterprise/service/enterprise.service.ts +4 -12
- package/src/module/enterprise/service/organization.service.ts +28 -151
- package/src/module/entity_json/controller/entity_json.controller.ts +13 -0
- package/src/module/entity_json/docs/FlatJson_Filterin_System.md +2804 -0
- package/src/module/entity_json/entity/entityJson.entity.ts +4 -1
- package/src/module/entity_json/entity_json.module.ts +9 -5
- package/src/module/entity_json/service/entity_json.service.ts +237 -51
- package/src/module/filter/controller/filter.controller.ts +1 -3
- package/src/module/filter/filter.module.ts +12 -3
- package/src/module/filter/service/filter.service.ts +130 -73
- package/src/module/filter/service/flatjson-filter.service.ts +903 -0
- package/src/module/filter/service/saved-filter.service.ts +16 -26
- package/src/module/filter/test/flatjson-filter.service.spec.ts +415 -0
- package/src/module/integration/service/integration.service.ts +6 -2
- package/src/module/integration/service/wrapper.service.ts +1 -0
- package/src/module/layout/controller/layout.controller.ts +8 -1
- package/src/module/layout/entity/header-section.entity.ts +6 -0
- package/src/module/layout/layout.module.ts +1 -1
- package/src/module/layout/repository/header-section.repository.ts +6 -0
- package/src/module/layout/service/header-section.service.ts +1 -1
- package/src/module/linked_attributes/controller/linked_attributes.controller.ts +100 -0
- package/src/module/linked_attributes/dto/create-linked-attribute-smart.dto.ts +54 -0
- package/src/module/linked_attributes/linked_attributes.module.ts +9 -2
- package/src/module/linked_attributes/service/linked_attributes.service.ts +578 -3
- package/src/module/linked_attributes/test/linked-attributes.service.spec.ts +244 -0
- package/src/module/listmaster/service/list-master.service.ts +75 -437
- package/src/module/meta/controller/attribute-master.controller.ts +12 -0
- package/src/module/meta/controller/entity-dynamic.controller.ts +8 -6
- package/src/module/meta/controller/entity.controller.ts +1 -0
- package/src/module/meta/controller/meta.controller.ts +25 -3
- package/src/module/{app_master → meta}/entity/app-master.entity.ts +9 -22
- package/src/module/meta/entity/attribute-master.entity.ts +0 -13
- package/src/module/meta/entity/entity-master.entity.ts +9 -3
- package/src/module/meta/entity.module.ts +20 -6
- package/src/module/{app_master → meta}/repository/app-master.repository.ts +3 -3
- package/src/module/meta/service/attribute-master.service.ts +31 -1
- package/src/module/meta/service/entity-dynamic.service.ts +26 -23
- package/src/module/meta/service/entity-master.service.ts +1 -0
- package/src/module/meta/service/entity-relation.service.ts +10 -6
- package/src/module/meta/service/entity-service-impl.service.ts +15 -19
- package/src/module/meta/service/entity-table.service.ts +82 -68
- package/src/module/meta/service/entity.service.ts +0 -1
- package/src/module/{enterprise → meta}/service/populate-meta.service.ts +5 -2
- package/src/module/meta/service/resolver.service.ts +4 -0
- package/src/module/module/controller/module-access.controller.ts +9 -14
- package/src/module/module/entity/menu.entity.ts +10 -18
- package/src/module/module/entity/module-access.entity.ts +3 -40
- package/src/module/module/entity/module-action.entity.ts +6 -10
- package/src/module/module/entity/module.entity.ts +14 -7
- package/src/module/module/module.module.ts +3 -2
- package/src/module/module/repository/menu.repository.ts +29 -43
- package/src/module/module/repository/module-access.repository.ts +62 -110
- package/src/module/module/service/menu.service.ts +9 -7
- package/src/module/module/service/module-access.service.ts +34 -22
- package/src/module/notification/entity/notification.entity.ts +3 -53
- package/src/module/notification/notification.module.ts +5 -6
- package/src/module/notification/service/email.service.ts +1 -16
- package/src/module/notification/service/notification.service.ts +1 -0
- package/src/module/notification/service/otp.service.ts +5 -16
- package/src/module/user/controller/login.controller.ts +8 -7
- package/src/module/user/controller/user.controller.ts +9 -0
- package/src/module/user/dto/create-user.dto.ts +6 -19
- package/src/module/user/entity/role.entity.ts +16 -59
- package/src/module/user/entity/user-role-mapping.entity.ts +3 -29
- package/src/module/user/entity/user-session.entity.ts +19 -3
- package/src/module/user/entity/user.entity.ts +13 -48
- package/src/module/user/repository/role.repository.ts +12 -32
- package/src/module/user/repository/user-role-mapping.repository.ts +1 -5
- package/src/module/user/repository/user.repository.ts +9 -36
- package/src/module/user/repository/userSession.repository.ts +1 -5
- package/src/module/user/service/login.service.ts +51 -47
- package/src/module/user/service/role.service.ts +63 -64
- package/src/module/user/service/user-role-mapping.service.ts +1 -23
- package/src/module/user/service/user-session.service.ts +11 -14
- package/src/module/user/service/user.service.ts +95 -76
- package/src/module/user/user.module.ts +5 -4
- package/src/module/workflow/repository/action-data.repository.ts +8 -6
- package/src/module/workflow/repository/action.repository.ts +11 -11
- package/src/module/workflow/repository/form-master.repository.ts +2 -2
- package/src/module/workflow/service/action-data.service.ts +2 -3
- package/src/module/workflow/service/action.service.ts +2 -2
- package/src/module/workflow/service/comm-template.service.ts +2 -0
- package/src/module/workflow/service/entity-modification.service.ts +1 -0
- package/src/module/workflow/service/form-master.service.ts +2 -2
- package/src/module/workflow/service/populate-workflow.service.ts +1 -1
- package/src/module/workflow/service/task.service.ts +4 -0
- package/src/module/workflow/service/workflow-meta.service.ts +7 -2
- package/src/module/workflow/service/workflow.service.ts +2 -2
- package/src/module/workflow/workflow.module.ts +0 -2
- package/src/module/workflow-automation/service/workflow-automation.service.ts +7 -19
- package/src/module/workflow-automation/workflow-automation.module.ts +3 -4
- package/src/module/workflow-schedule/service/workflow-schedule.service.ts +2 -0
- package/src/resources/dev.properties.yaml +2 -2
- package/src/table.config.ts +3 -3
- package/.claude/settings.local.json +0 -26
- package/.idea/250218_nodejs_core.iml +0 -9
- package/.idea/codeStyles/Project.xml +0 -59
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/.idea/copilot.data.migration.agent.xml +0 -6
- package/.idea/copilot.data.migration.ask.xml +0 -6
- package/.idea/copilot.data.migration.ask2agent.xml +0 -6
- package/.idea/copilot.data.migration.edit.xml +0 -6
- package/.idea/inspectionProfiles/Project_Default.xml +0 -6
- package/.idea/misc.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/prettier.xml +0 -6
- package/.idea/vcs.xml +0 -6
- package/dist/constant/status.constant.d.ts +0 -4
- package/dist/constant/status.constant.js +0 -9
- package/dist/constant/status.constant.js.map +0 -1
- package/dist/module/app_master/app-master.module.d.ts +0 -2
- package/dist/module/app_master/app-master.module.js +0 -28
- package/dist/module/app_master/app-master.module.js.map +0 -1
- package/dist/module/app_master/controller/app-master.controller.js.map +0 -1
- package/dist/module/app_master/entity/app-master.entity.d.ts +0 -17
- package/dist/module/app_master/entity/app-master.entity.js.map +0 -1
- package/dist/module/app_master/repository/app-master.repository.js.map +0 -1
- package/dist/module/app_master/service/app-master.service.js.map +0 -1
- package/dist/module/enterprise/controller/enterprise.controller.d.ts +0 -12
- package/dist/module/enterprise/controller/enterprise.controller.js +0 -57
- package/dist/module/enterprise/controller/enterprise.controller.js.map +0 -1
- package/dist/module/enterprise/controller/meta.controller.d.ts +0 -9
- package/dist/module/enterprise/controller/meta.controller.js +0 -43
- package/dist/module/enterprise/controller/meta.controller.js.map +0 -1
- package/dist/module/enterprise/service/brand-profile.service.d.ts +0 -0
- package/dist/module/enterprise/service/brand-profile.service.js +0 -1
- package/dist/module/enterprise/service/brand-profile.service.js.map +0 -1
- package/dist/module/enterprise/service/populate-meta.service.d.ts +0 -9
- package/dist/module/enterprise/service/populate-meta.service.js.map +0 -1
- package/dist/module/enterprise/service/school.service.d.ts +0 -0
- package/dist/module/enterprise/service/school.service.js +0 -1
- package/dist/module/enterprise/service/school.service.js.map +0 -1
- package/dist/module/preference_master/entity/preference.entity.d.ts +0 -9
- package/dist/module/preference_master/entity/preference.entity.js +0 -48
- package/dist/module/preference_master/entity/preference.entity.js.map +0 -1
- package/dist/module/preference_master/preference.service.d.ts +0 -8
- package/dist/module/preference_master/preference.service.js +0 -31
- package/dist/module/preference_master/preference.service.js.map +0 -1
- package/dist/module/preference_master/repo/preference.repository.d.ts +0 -8
- package/dist/module/preference_master/repo/preference.repository.js +0 -48
- package/dist/module/preference_master/repo/preference.repository.js.map +0 -1
- package/server.log +0 -850
- package/src/constant/status.constant.ts +0 -4
- package/src/module/app_master/app-master.module.ts +0 -15
- package/src/module/enterprise/controller/enterprise.controller.ts +0 -40
- package/src/module/enterprise/controller/meta.controller.ts +0 -23
- package/src/module/enterprise/service/brand-profile.service.ts +0 -10
- package/src/module/enterprise/service/school.service.ts +0 -5
- package/src/module/preference_master/entity/preference.entity.ts +0 -25
- package/src/module/preference_master/preference.service.ts +0 -27
- package/src/module/preference_master/repo/preference.repository.ts +0 -36
- /package/dist/module/{app_master → meta}/controller/app-master.controller.d.ts +0 -0
- /package/dist/module/{app_master → meta}/controller/app-master.controller.js +0 -0
- /package/dist/module/{app_master → meta}/service/app-master.service.d.ts +0 -0
- /package/dist/module/{app_master → meta}/service/app-master.service.js +0 -0
- /package/src/module/{app_master → meta}/controller/app-master.controller.ts +0 -0
- /package/src/module/{app_master → meta}/service/app-master.service.ts +0 -0
|
@@ -212,6 +212,14 @@ export class ListMasterService {
|
|
|
212
212
|
});
|
|
213
213
|
}
|
|
214
214
|
|
|
215
|
+
if (loggedInUser?.appcode && sourceList === 'ROL') {
|
|
216
|
+
if (!this.skipLevelFilterEntities.includes(sourceList)) {
|
|
217
|
+
qb.andWhere(`${tableName}.appcode = :appcode`, {
|
|
218
|
+
appcode: loggedInUser.appcode,
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
215
223
|
// ✅ Apply dynamic params
|
|
216
224
|
for (const key in params) {
|
|
217
225
|
qb.andWhere(`${tableName}.${key} = :${key}`, {
|
|
@@ -251,7 +259,7 @@ export class ListMasterService {
|
|
|
251
259
|
|
|
252
260
|
const resolveInactiveStatus = await this.getResolvedListCode(
|
|
253
261
|
STATUS_INACTIVE,
|
|
254
|
-
loggedInUser?.
|
|
262
|
+
loggedInUser?.organization_id || 0,
|
|
255
263
|
);
|
|
256
264
|
|
|
257
265
|
// Fetch inactive records (with same filters but without status condition)
|
|
@@ -422,373 +430,91 @@ export class ListMasterService {
|
|
|
422
430
|
entity_type: string,
|
|
423
431
|
attribute_key: string,
|
|
424
432
|
loggedInUser: UserData,
|
|
425
|
-
body: Record<string,
|
|
433
|
+
body: Record<string, string>,
|
|
426
434
|
) {
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
: [];
|
|
433
|
-
|
|
434
|
-
// Fetch Attribute Master to get data source configuration
|
|
435
|
-
const attributeMaster =
|
|
436
|
-
await this.attributeMasterService.findByMappedEntityTypeAndAttributeKey(
|
|
437
|
-
entity_type,
|
|
438
|
-
attribute_key,
|
|
439
|
-
loggedInUser,
|
|
440
|
-
);
|
|
441
|
-
|
|
442
|
-
if (!attributeMaster) {
|
|
443
|
-
throw new BadRequestException(
|
|
444
|
-
`Attribute '${attribute_key}' not found for entity '${entity_type}'`,
|
|
445
|
-
);
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
// Extract data source configuration from AttributeMaster
|
|
449
|
-
const {
|
|
450
|
-
ds_category, // ENT_LIST | LM | CAPI | CK | EXTAPI
|
|
451
|
-
ds_entitytype, // Entity type or list code
|
|
452
|
-
ds_filtercode, // Additional filter code
|
|
453
|
-
ds_appcode, // Target app code
|
|
454
|
-
} = attributeMaster;
|
|
435
|
+
let entityMaster = await this.entityMasterService.getEntityData(
|
|
436
|
+
entity_type,
|
|
437
|
+
loggedInUser,
|
|
438
|
+
);
|
|
439
|
+
let appCode = entityMaster.appcode;
|
|
455
440
|
|
|
456
|
-
|
|
457
|
-
throw new BadRequestException(
|
|
458
|
-
`Data source category not configured for attribute '${attribute_key}'`,
|
|
459
|
-
);
|
|
460
|
-
}
|
|
441
|
+
const { inactiveIds, ...params } = body;
|
|
461
442
|
|
|
462
|
-
|
|
443
|
+
const inactiveIdsArray = inactiveIds
|
|
444
|
+
? inactiveIds.split(',').map((id) => parseInt(id, 10))
|
|
445
|
+
: [];
|
|
463
446
|
|
|
464
|
-
|
|
465
|
-
const isSelfApp =
|
|
466
|
-
!ds_appcode ||
|
|
467
|
-
ds_appcode.toUpperCase() === 'SELF' ||
|
|
468
|
-
currentAppCode === ds_appcode;
|
|
447
|
+
const currentAppCode = this.configService.get<string>('appcode');
|
|
469
448
|
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
ds_category,
|
|
474
|
-
ds_entitytype,
|
|
475
|
-
ds_filtercode,
|
|
476
|
-
params,
|
|
477
|
-
inactiveIdsArray,
|
|
478
|
-
loggedInUser,
|
|
479
|
-
);
|
|
480
|
-
} else {
|
|
481
|
-
// CROSS APP - Forward to target microservice
|
|
482
|
-
return this.processCrossAppDropdown(
|
|
483
|
-
ds_appcode,
|
|
449
|
+
if (currentAppCode === appCode || !currentAppCode) {
|
|
450
|
+
const entityAttribute =
|
|
451
|
+
await this.attributeMasterService.findByMappedEntityTypeAndAttributeKey(
|
|
484
452
|
entity_type,
|
|
485
453
|
attribute_key,
|
|
486
454
|
loggedInUser,
|
|
487
|
-
body,
|
|
488
455
|
);
|
|
489
|
-
}
|
|
490
|
-
} catch (error) {
|
|
491
|
-
console.error('❌ Error in getDropDownData:', error.message);
|
|
492
|
-
throw error;
|
|
493
|
-
}
|
|
494
|
-
}
|
|
495
|
-
|
|
496
|
-
/**
|
|
497
|
-
* Process dropdown data locally (SELF APP)
|
|
498
|
-
*/
|
|
499
|
-
private async processLocalDropdown(
|
|
500
|
-
ds_category: string,
|
|
501
|
-
ds_entitytype: string,
|
|
502
|
-
ds_filtercode: string,
|
|
503
|
-
params: Record<string, any>,
|
|
504
|
-
inactiveIdsArray: number[],
|
|
505
|
-
loggedInUser: UserData,
|
|
506
|
-
) {
|
|
507
|
-
// Route to appropriate handler based on data source category
|
|
508
|
-
switch (ds_category.toUpperCase()) {
|
|
509
|
-
case 'ENT_LIST':
|
|
510
|
-
case 'ENTITY':
|
|
511
|
-
// Merge ds_filtercode params with request params
|
|
512
|
-
const mergedParams = { ...params };
|
|
513
|
-
if (ds_filtercode) {
|
|
514
|
-
const filterParams = this.parseFilterCode(ds_filtercode);
|
|
515
|
-
Object.assign(mergedParams, filterParams);
|
|
516
|
-
}
|
|
517
|
-
return this.fetchFromEntity(
|
|
518
|
-
ds_entitytype,
|
|
519
|
-
mergedParams,
|
|
520
|
-
inactiveIdsArray,
|
|
521
|
-
loggedInUser,
|
|
522
|
-
);
|
|
523
|
-
|
|
524
|
-
case 'LM':
|
|
525
|
-
case 'LIST_MASTER':
|
|
526
|
-
return this.fetchFromListMaster(
|
|
527
|
-
ds_entitytype,
|
|
528
|
-
ds_filtercode,
|
|
529
|
-
params,
|
|
530
|
-
inactiveIdsArray,
|
|
531
|
-
loggedInUser,
|
|
532
|
-
);
|
|
533
|
-
|
|
534
|
-
case 'CAPI':
|
|
535
|
-
case 'CUSTOM_API':
|
|
536
|
-
return this.fetchFromCustomInternalService(
|
|
537
|
-
ds_entitytype,
|
|
538
|
-
ds_filtercode,
|
|
539
|
-
params,
|
|
540
|
-
loggedInUser,
|
|
541
|
-
);
|
|
542
|
-
|
|
543
|
-
case 'CK':
|
|
544
|
-
case 'CUSTOM_KEY':
|
|
545
|
-
return this.fetchFromCustomKey(
|
|
546
|
-
ds_entitytype,
|
|
547
|
-
ds_filtercode,
|
|
548
|
-
params,
|
|
549
|
-
loggedInUser,
|
|
550
|
-
);
|
|
551
|
-
|
|
552
|
-
case 'EXTAPI':
|
|
553
|
-
case 'EXTERNAL_API':
|
|
554
|
-
return this.fetchFromExternalAPI(
|
|
555
|
-
ds_entitytype,
|
|
556
|
-
ds_filtercode,
|
|
557
|
-
params,
|
|
558
|
-
loggedInUser,
|
|
559
|
-
);
|
|
560
|
-
|
|
561
|
-
default:
|
|
562
|
-
throw new BadRequestException(
|
|
563
|
-
`Unsupported data source category: ${ds_category}`,
|
|
564
|
-
);
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
|
|
568
|
-
/**
|
|
569
|
-
* Fetch dropdown from List Master
|
|
570
|
-
*/
|
|
571
|
-
private async fetchFromListMaster(
|
|
572
|
-
lmCode: string,
|
|
573
|
-
filterCode: string,
|
|
574
|
-
params: Record<string, any>,
|
|
575
|
-
inactiveIdsArray: number[],
|
|
576
|
-
loggedInUser: UserData,
|
|
577
|
-
) {
|
|
578
|
-
try {
|
|
579
|
-
// Get List Master configuration
|
|
580
|
-
const listMaster = await this.listMasterRepo.findByType(
|
|
581
|
-
lmCode,
|
|
582
|
-
loggedInUser.enterprise_id,
|
|
583
|
-
);
|
|
584
|
-
|
|
585
|
-
if (!listMaster) {
|
|
586
|
-
throw new BadRequestException(`List Master '${lmCode}' not found`);
|
|
587
|
-
}
|
|
588
|
-
|
|
589
|
-
// Use repository to fetch items directly with filter
|
|
590
|
-
return this.listItemsRepo.findItemsByType(
|
|
591
|
-
lmCode,
|
|
592
|
-
listMaster.sort_by,
|
|
593
|
-
inactiveIdsArray,
|
|
594
|
-
loggedInUser.enterprise_id,
|
|
595
|
-
params,
|
|
596
|
-
);
|
|
597
|
-
} catch (error) {
|
|
598
|
-
console.error(`❌ Error fetching from List Master '${lmCode}':`, error.message);
|
|
599
|
-
throw new BadRequestException(
|
|
600
|
-
`Failed to fetch from List Master: ${error.message}`,
|
|
601
|
-
);
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
|
|
605
|
-
/**
|
|
606
|
-
* Fetch dropdown from Custom Internal Service (Message Pattern)
|
|
607
|
-
*/
|
|
608
|
-
private async fetchFromCustomInternalService(
|
|
609
|
-
serviceName: string,
|
|
610
|
-
filterCode: string,
|
|
611
|
-
params: Record<string, any>,
|
|
612
|
-
loggedInUser: UserData,
|
|
613
|
-
) {
|
|
614
|
-
try {
|
|
615
|
-
// Get internal service client
|
|
616
|
-
const client = this.factory.getClient('INTERNAL_SERVICE');
|
|
617
|
-
|
|
618
|
-
if (!client) {
|
|
619
|
-
throw new BadRequestException('Internal service client not available');
|
|
620
|
-
}
|
|
621
|
-
|
|
622
|
-
// Call internal microservice using message pattern
|
|
623
|
-
const response = await client
|
|
624
|
-
.send(serviceName, {
|
|
625
|
-
filterCode,
|
|
626
|
-
params,
|
|
627
|
-
loggedInUser,
|
|
628
|
-
})
|
|
629
|
-
.toPromise();
|
|
630
|
-
|
|
631
|
-
return response;
|
|
632
|
-
} catch (error) {
|
|
633
|
-
console.error(
|
|
634
|
-
`❌ Error calling custom internal service '${serviceName}':`,
|
|
635
|
-
error.message,
|
|
636
|
-
);
|
|
637
|
-
throw new BadRequestException(
|
|
638
|
-
`Failed to call custom internal service: ${error.message}`,
|
|
639
|
-
);
|
|
640
|
-
}
|
|
641
|
-
}
|
|
642
|
-
|
|
643
|
-
/**
|
|
644
|
-
* Fetch dropdown from Custom Key (Predefined logic)
|
|
645
|
-
*/
|
|
646
|
-
private async fetchFromCustomKey(
|
|
647
|
-
customKey: string,
|
|
648
|
-
filterCode: string,
|
|
649
|
-
params: Record<string, any>,
|
|
650
|
-
loggedInUser: UserData,
|
|
651
|
-
) {
|
|
652
|
-
try {
|
|
653
|
-
// Handle predefined custom logic based on custom key
|
|
654
|
-
switch (customKey.toUpperCase()) {
|
|
655
|
-
case 'USER_ROLES':
|
|
656
|
-
return this.getUserRolesDropdown(filterCode, params, loggedInUser);
|
|
657
|
-
|
|
658
|
-
case 'DEPARTMENTS':
|
|
659
|
-
return this.getDepartmentsDropdown(filterCode, params, loggedInUser);
|
|
660
|
-
|
|
661
|
-
case 'FINANCIAL_YEARS':
|
|
662
|
-
return this.getFinancialYearsDropdown(filterCode, params, loggedInUser);
|
|
663
|
-
|
|
664
|
-
case 'OPERATORS':
|
|
665
|
-
return this.getOperatorsDropdown(filterCode, params, loggedInUser);
|
|
666
|
-
|
|
667
|
-
// Add more custom key handlers as needed
|
|
668
|
-
default:
|
|
669
|
-
throw new BadRequestException(`Unknown custom key: ${customKey}`);
|
|
670
|
-
}
|
|
671
|
-
} catch (error) {
|
|
672
|
-
console.error(`❌ Error fetching custom key '${customKey}':`, error.message);
|
|
673
|
-
throw new BadRequestException(
|
|
674
|
-
`Failed to fetch custom key: ${error.message}`,
|
|
675
|
-
);
|
|
676
|
-
}
|
|
677
|
-
}
|
|
678
456
|
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
apiUrl: string,
|
|
684
|
-
filterCode: string,
|
|
685
|
-
params: Record<string, any>,
|
|
686
|
-
loggedInUser: UserData,
|
|
687
|
-
) {
|
|
688
|
-
try {
|
|
689
|
-
// Build full API URL with filter code if provided
|
|
690
|
-
const fullUrl = filterCode ? `${apiUrl}/${filterCode}` : apiUrl;
|
|
691
|
-
|
|
692
|
-
// Make external API call using Axios
|
|
693
|
-
const response = await axios.get(fullUrl, {
|
|
694
|
-
params: {
|
|
695
|
-
...params,
|
|
696
|
-
enterprise_id: loggedInUser.enterprise_id,
|
|
697
|
-
},
|
|
698
|
-
timeout: 10000, // 10 seconds timeout
|
|
699
|
-
headers: {
|
|
700
|
-
'Content-Type': 'application/json',
|
|
701
|
-
'Authorization': `Bearer ${this.configService.get('EXTERNAL_API_TOKEN')}`,
|
|
702
|
-
},
|
|
703
|
-
});
|
|
704
|
-
|
|
705
|
-
return response.data;
|
|
706
|
-
} catch (error) {
|
|
707
|
-
console.error(`❌ Error calling external API '${apiUrl}':`, error.message);
|
|
708
|
-
|
|
709
|
-
if (error.response) {
|
|
710
|
-
throw new BadRequestException(
|
|
711
|
-
`External API error: ${error.response.status} - ${error.response.statusText}`,
|
|
712
|
-
);
|
|
713
|
-
} else if (error.request) {
|
|
714
|
-
throw new BadRequestException('External API is not responding');
|
|
715
|
-
} else {
|
|
716
|
-
throw new BadRequestException(
|
|
717
|
-
`Failed to call external API: ${error.message}`,
|
|
457
|
+
if (entityAttribute && entityAttribute.data_source_type) {
|
|
458
|
+
const listMaster = await this.listMasterRepo.findByType(
|
|
459
|
+
entityAttribute.datasource_list,
|
|
460
|
+
loggedInUser?.enterprise_id,
|
|
718
461
|
);
|
|
719
|
-
}
|
|
720
|
-
}
|
|
721
|
-
}
|
|
722
462
|
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
*/
|
|
726
|
-
private applyFilterCode(
|
|
727
|
-
query: any,
|
|
728
|
-
tableName: string,
|
|
729
|
-
filterCode: string,
|
|
730
|
-
loggedInUser: UserData,
|
|
731
|
-
): any {
|
|
732
|
-
// Parse filter code and apply conditions
|
|
733
|
-
// Example: "status=active|type=premium"
|
|
734
|
-
const filters = filterCode.split('|');
|
|
735
|
-
|
|
736
|
-
filters.forEach((filter) => {
|
|
737
|
-
const [key, value] = filter.split('=');
|
|
738
|
-
if (key && value) {
|
|
739
|
-
// Handle special variables
|
|
740
|
-
let filterValue: any = value;
|
|
741
|
-
if (value === '{USER_ID}') {
|
|
742
|
-
filterValue = loggedInUser.id;
|
|
743
|
-
} else if (value === '{ENTERPRISE_ID}') {
|
|
744
|
-
filterValue = loggedInUser.enterprise_id;
|
|
463
|
+
if (!listMaster) {
|
|
464
|
+
return;
|
|
745
465
|
}
|
|
746
466
|
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
467
|
+
switch (listMaster.source) {
|
|
468
|
+
case 'entity':
|
|
469
|
+
return this.fetchFromEntity(
|
|
470
|
+
listMaster.type,
|
|
471
|
+
params,
|
|
472
|
+
inactiveIdsArray,
|
|
473
|
+
loggedInUser,
|
|
474
|
+
);
|
|
475
|
+
|
|
476
|
+
case 'master':
|
|
477
|
+
return this.listItemsRepo.findItemsByType(
|
|
478
|
+
listMaster.type,
|
|
479
|
+
listMaster.sort_by,
|
|
480
|
+
inactiveIdsArray,
|
|
481
|
+
loggedInUser.enterprise_id,
|
|
482
|
+
params,
|
|
483
|
+
);
|
|
484
|
+
|
|
485
|
+
case 'operator':
|
|
486
|
+
return this.listItemsRepo.findOperatorsByType(
|
|
487
|
+
listMaster?.type,
|
|
488
|
+
loggedInUser?.enterprise_id,
|
|
489
|
+
);
|
|
490
|
+
|
|
491
|
+
case 'custom':
|
|
492
|
+
// If you want Axios call here too:
|
|
493
|
+
try {
|
|
494
|
+
const response = await axios.get(
|
|
495
|
+
`https://external-source.com/${listMaster.custom_source_id}`,
|
|
496
|
+
{ params },
|
|
497
|
+
);
|
|
498
|
+
return response.data;
|
|
499
|
+
} catch (error) {
|
|
500
|
+
console.error('⚠️ Custom source fetch failed:', error.message);
|
|
501
|
+
throw new BadRequestException('Failed to fetch custom source');
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
default:
|
|
505
|
+
throw new BadRequestException(
|
|
506
|
+
`Unknown source: ${listMaster.source}`,
|
|
507
|
+
);
|
|
508
|
+
}
|
|
750
509
|
}
|
|
751
|
-
}
|
|
752
|
-
|
|
753
|
-
return query;
|
|
754
|
-
}
|
|
755
|
-
|
|
756
|
-
/**
|
|
757
|
-
* Format dropdown response with consistent structure
|
|
758
|
-
*/
|
|
759
|
-
private formatDropdownResponse(data: any[], config: any): any[] {
|
|
760
|
-
return data.map((item) => ({
|
|
761
|
-
id: item.id,
|
|
762
|
-
value: item.value || item.name || item.title,
|
|
763
|
-
label: item.label || item.display_name || item.name || item.title,
|
|
764
|
-
code: item.code,
|
|
765
|
-
...item, // Include all other fields
|
|
766
|
-
}));
|
|
767
|
-
}
|
|
768
|
-
|
|
769
|
-
/**
|
|
770
|
-
* Forward request to cross-app microservice (CROSS APP)
|
|
771
|
-
*/
|
|
772
|
-
private async processCrossAppDropdown(
|
|
773
|
-
targetAppCode: string,
|
|
774
|
-
entity_type: string,
|
|
775
|
-
attribute_key: string,
|
|
776
|
-
loggedInUser: UserData,
|
|
777
|
-
body: Record<string, any>,
|
|
778
|
-
) {
|
|
779
|
-
try {
|
|
780
|
-
// Get microservice client for target app
|
|
781
|
-
const client = this.factory.getClient(targetAppCode);
|
|
510
|
+
} else {
|
|
511
|
+
const client = this.factory.getClient(appCode);
|
|
782
512
|
|
|
783
513
|
if (!client) {
|
|
784
|
-
|
|
785
|
-
`Microservice client for app '${targetAppCode}' not available`,
|
|
786
|
-
);
|
|
514
|
+
return;
|
|
787
515
|
}
|
|
788
516
|
|
|
789
|
-
|
|
790
|
-
// The target microservice will execute the same process recursively
|
|
791
|
-
const response = await client
|
|
517
|
+
return client
|
|
792
518
|
.send('getDropdownData', {
|
|
793
519
|
entity_type,
|
|
794
520
|
attribute_key,
|
|
@@ -796,94 +522,6 @@ export class ListMasterService {
|
|
|
796
522
|
body,
|
|
797
523
|
})
|
|
798
524
|
.toPromise();
|
|
799
|
-
|
|
800
|
-
return response;
|
|
801
|
-
} catch (error) {
|
|
802
|
-
console.error(
|
|
803
|
-
`❌ Error calling cross-app microservice '${targetAppCode}':`,
|
|
804
|
-
error.message,
|
|
805
|
-
);
|
|
806
|
-
throw new BadRequestException(
|
|
807
|
-
`Failed to fetch dropdown from app '${targetAppCode}': ${error.message}`,
|
|
808
|
-
);
|
|
809
|
-
}
|
|
810
|
-
}
|
|
811
|
-
|
|
812
|
-
// Example custom key handlers
|
|
813
|
-
private async getUserRolesDropdown(
|
|
814
|
-
filterCode: string,
|
|
815
|
-
params: Record<string, any>,
|
|
816
|
-
loggedInUser: UserData,
|
|
817
|
-
) {
|
|
818
|
-
// TODO: Implement roles service integration
|
|
819
|
-
// return this.rolesService.getActiveRoles(loggedInUser.enterprise_id, params);
|
|
820
|
-
throw new BadRequestException('USER_ROLES handler not implemented yet');
|
|
821
|
-
}
|
|
822
|
-
|
|
823
|
-
private async getDepartmentsDropdown(
|
|
824
|
-
filterCode: string,
|
|
825
|
-
params: Record<string, any>,
|
|
826
|
-
loggedInUser: UserData,
|
|
827
|
-
) {
|
|
828
|
-
// TODO: Implement departments service integration
|
|
829
|
-
// return this.departmentService.getActiveDepartments(loggedInUser.enterprise_id, params);
|
|
830
|
-
throw new BadRequestException('DEPARTMENTS handler not implemented yet');
|
|
831
|
-
}
|
|
832
|
-
|
|
833
|
-
private async getFinancialYearsDropdown(
|
|
834
|
-
filterCode: string,
|
|
835
|
-
params: Record<string, any>,
|
|
836
|
-
loggedInUser: UserData,
|
|
837
|
-
) {
|
|
838
|
-
// Generate financial years dynamically
|
|
839
|
-
const currentYear = new Date().getFullYear();
|
|
840
|
-
const years: Array<{ id: number; value: string; label: string }> = [];
|
|
841
|
-
for (let i = -5; i <= 5; i++) {
|
|
842
|
-
const year = currentYear + i;
|
|
843
|
-
years.push({
|
|
844
|
-
id: year,
|
|
845
|
-
value: `FY${year}-${year + 1}`,
|
|
846
|
-
label: `FY ${year}-${year + 1}`,
|
|
847
|
-
});
|
|
848
525
|
}
|
|
849
|
-
return years;
|
|
850
|
-
}
|
|
851
|
-
|
|
852
|
-
private async getOperatorsDropdown(
|
|
853
|
-
filterCode: string,
|
|
854
|
-
params: Record<string, any>,
|
|
855
|
-
loggedInUser: UserData,
|
|
856
|
-
) {
|
|
857
|
-
// Return predefined operators
|
|
858
|
-
return [
|
|
859
|
-
{ id: 1, value: '=', label: 'Equals' },
|
|
860
|
-
{ id: 2, value: '!=', label: 'Not Equals' },
|
|
861
|
-
{ id: 3, value: '>', label: 'Greater Than' },
|
|
862
|
-
{ id: 4, value: '<', label: 'Less Than' },
|
|
863
|
-
{ id: 5, value: '>=', label: 'Greater Than or Equal' },
|
|
864
|
-
{ id: 6, value: '<=', label: 'Less Than or Equal' },
|
|
865
|
-
{ id: 7, value: 'LIKE', label: 'Contains' },
|
|
866
|
-
{ id: 8, value: 'IN', label: 'In List' },
|
|
867
|
-
];
|
|
868
|
-
}
|
|
869
|
-
|
|
870
|
-
/**
|
|
871
|
-
* Parse filter code string into key-value params
|
|
872
|
-
* Example: "status=active|type=premium" => { status: 'active', type: 'premium' }
|
|
873
|
-
*/
|
|
874
|
-
private parseFilterCode(filterCode: string): Record<string, any> {
|
|
875
|
-
if (!filterCode) return {};
|
|
876
|
-
|
|
877
|
-
const params: Record<string, any> = {};
|
|
878
|
-
const filters = filterCode.split('|');
|
|
879
|
-
|
|
880
|
-
filters.forEach((filter) => {
|
|
881
|
-
const [key, value] = filter.split('=');
|
|
882
|
-
if (key && value) {
|
|
883
|
-
params[key.trim()] = value.trim();
|
|
884
|
-
}
|
|
885
|
-
});
|
|
886
|
-
|
|
887
|
-
return params;
|
|
888
526
|
}
|
|
889
527
|
}
|
|
@@ -81,4 +81,16 @@ export class AttributeMasterController {
|
|
|
81
81
|
loggedInUser,
|
|
82
82
|
);
|
|
83
83
|
}
|
|
84
|
+
|
|
85
|
+
@Get('getAll/:entityType')
|
|
86
|
+
async getAttributes(
|
|
87
|
+
@Param('entityType') entityType: string,
|
|
88
|
+
@Req() req: Request & { user: any },
|
|
89
|
+
) {
|
|
90
|
+
const loggedInUser = req.user.userData;
|
|
91
|
+
return await this.attributeMasterService.getAttributes(
|
|
92
|
+
entityType,
|
|
93
|
+
loggedInUser,
|
|
94
|
+
);
|
|
95
|
+
}
|
|
84
96
|
}
|
|
@@ -33,8 +33,9 @@ export class EntityDynamicController {
|
|
|
33
33
|
if (!entityType) {
|
|
34
34
|
throw new BadRequestException(`Query param "entity_type" is required`);
|
|
35
35
|
}
|
|
36
|
-
|
|
37
|
-
return await this.entityDynamicService.
|
|
36
|
+
|
|
37
|
+
return await this.entityDynamicService.createEntityWithRelation(
|
|
38
|
+
entityType,
|
|
38
39
|
data,
|
|
39
40
|
loggedInUser,
|
|
40
41
|
);
|
|
@@ -62,9 +63,10 @@ export class EntityDynamicController {
|
|
|
62
63
|
if (!existingEntity) {
|
|
63
64
|
throw new NotFoundException(`No entity found for id "${id}"`);
|
|
64
65
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
|
|
67
|
+
return await this.entityDynamicService.updateEntityWithRelations(
|
|
68
|
+
entityType,
|
|
69
|
+
id,
|
|
68
70
|
data,
|
|
69
71
|
loggedInUser,
|
|
70
72
|
);
|
|
@@ -83,7 +85,7 @@ export class EntityDynamicController {
|
|
|
83
85
|
throw new BadRequestException(`Query param "entity_type" is required`);
|
|
84
86
|
}
|
|
85
87
|
|
|
86
|
-
const entity = await this.entityDynamicService.
|
|
88
|
+
const entity = await this.entityDynamicService.getEntityWithRelation(
|
|
87
89
|
entityType,
|
|
88
90
|
id,
|
|
89
91
|
loggedInUser,
|
|
@@ -1,7 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
Body,
|
|
3
|
+
Controller, HttpCode,
|
|
4
|
+
HttpStatus,
|
|
5
|
+
Post,
|
|
6
|
+
Query,
|
|
7
|
+
Req,
|
|
8
|
+
Res,
|
|
9
|
+
UseGuards,
|
|
10
|
+
} from '@nestjs/common';
|
|
2
11
|
import { EntityTableService } from '../service/entity-table.service';
|
|
3
12
|
import { Response } from 'express';
|
|
4
13
|
import { JwtAuthGuard } from '../../auth/guards/jwt.guard';
|
|
14
|
+
import { PopulateMetaService } from '../service/populate-meta.service';
|
|
5
15
|
import { EntityMasterService } from '../service/entity-master.service';
|
|
6
16
|
|
|
7
17
|
@Controller('meta')
|
|
@@ -9,9 +19,9 @@ import { EntityMasterService } from '../service/entity-master.service';
|
|
|
9
19
|
export class MetaController {
|
|
10
20
|
constructor(
|
|
11
21
|
private readonly entityTableService: EntityTableService,
|
|
22
|
+
private readonly populateMetaService: PopulateMetaService,
|
|
12
23
|
private readonly entityMaster: EntityMasterService,
|
|
13
|
-
) {
|
|
14
|
-
}
|
|
24
|
+
) {}
|
|
15
25
|
|
|
16
26
|
@Post('get-table-data')
|
|
17
27
|
@HttpCode(HttpStatus.OK)
|
|
@@ -54,6 +64,18 @@ export class MetaController {
|
|
|
54
64
|
});
|
|
55
65
|
}
|
|
56
66
|
|
|
67
|
+
@Post('populate')
|
|
68
|
+
@HttpCode(HttpStatus.OK)
|
|
69
|
+
async populateMetaData(
|
|
70
|
+
@Query('organization_id') organizationId: number,
|
|
71
|
+
@Res() response: Response,
|
|
72
|
+
@Req() req: Request & { user: any },
|
|
73
|
+
) {
|
|
74
|
+
const loggedInUser = req.user.userData;
|
|
75
|
+
const result =
|
|
76
|
+
await this.populateMetaService.populateMetaData(organizationId);
|
|
77
|
+
return response.status(HttpStatus.OK).json(result);
|
|
78
|
+
}
|
|
57
79
|
|
|
58
80
|
@Post('operation-list')
|
|
59
81
|
@HttpCode(HttpStatus.OK)
|