rez_core 5.0.76 → 5.0.77
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/.claude/settings.local.json +26 -0
- package/.idea/250218_nodejs_core.iml +8 -11
- package/.idea/codeStyles/Project.xml +58 -58
- package/.idea/codeStyles/codeStyleConfig.xml +4 -4
- package/.idea/copilot.data.migration.agent.xml +6 -0
- package/.idea/copilot.data.migration.ask.xml +6 -0
- package/.idea/copilot.data.migration.ask2agent.xml +6 -0
- package/.idea/copilot.data.migration.edit.xml +6 -0
- package/.idea/inspectionProfiles/Project_Default.xml +6 -0
- package/.idea/misc.xml +6 -0
- package/.idea/modules.xml +7 -7
- package/.idea/prettier.xml +6 -0
- package/.idea/vcs.xml +5 -5
- package/.prettierrc +3 -3
- package/README.md +99 -99
- package/dist/module/auth/guards/role.guard.js +3 -3
- package/dist/module/auth/services/auth.service.js +2 -2
- package/dist/module/filter/repository/saved-filter.repository.js +4 -4
- package/dist/module/filter/service/filter-evaluator.service.js +2 -2
- package/dist/module/filter/service/filter.service.js +22 -22
- package/dist/module/integration/examples/usage.example.js +9 -9
- package/dist/module/integration/service/integration.service.js +1 -1
- package/dist/module/integration/service/wrapper.service.js +26 -26
- package/dist/module/listmaster/service/list-master-item.service.js +2 -2
- package/dist/module/mapper/service/field-mapper.service.js +4 -4
- package/dist/module/meta/repository/entity-attribute-update.repository.js +3 -3
- package/dist/module/meta/repository/entity-master.repository.js +6 -6
- package/dist/module/meta/service/entity-dynamic.service.js +36 -36
- package/dist/module/meta/service/entity-list.service.js +3 -3
- package/dist/module/meta/service/entity-relation.service.js +9 -9
- package/dist/module/meta/service/entity-service-impl.service.js +3 -3
- package/dist/module/meta/service/resolver.service.js +33 -33
- package/dist/module/module/repository/menu.repository.js +17 -17
- package/dist/module/notification/service/notification.service.js +10 -10
- package/dist/module/user/controller/login.controller.js +18 -18
- package/dist/module/user/service/role.service.d.ts +3 -1
- package/dist/module/user/service/role.service.js +15 -7
- package/dist/module/user/service/role.service.js.map +1 -1
- package/dist/module/user/service/user-session.service.js +2 -2
- package/dist/module/workflow/repository/action.repository.js +12 -12
- package/dist/module/workflow/repository/comm-template.repository.js +6 -6
- package/dist/module/workflow/repository/form-master.repository.js +2 -2
- package/dist/module/workflow/repository/stage-group.repository.js +20 -20
- package/dist/module/workflow/repository/stage-movement.repository.js +17 -17
- package/dist/module/workflow/repository/stage.repository.js +8 -8
- package/dist/module/workflow/service/action-template-mapping.service.js +13 -13
- package/dist/module/workflow/service/action.service.js +7 -7
- package/dist/module/workflow/service/entity-modification.service.js +2 -2
- package/dist/module/workflow/service/stage-group.service.js +2 -2
- package/dist/module/workflow/service/stage.service.js +2 -2
- package/dist/module/workflow/service/task.service.js +18 -18
- package/dist/module/workflow/service/workflow-list-master.service.js +15 -15
- package/dist/module/workflow/service/workflow-meta.service.js +26 -26
- package/dist/module/workflow-automation/service/schedule-handler.service.js +9 -9
- package/dist/module/workflow-schedule/processors/schedule.processor.js +4 -4
- package/dist/module/workflow-schedule/service/workflow-schedule.service.js +9 -9
- package/dist/resources/properties.yaml.js +1 -1
- package/dist/table.config.d.ts +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/service/reflection-helper.service.js +2 -2
- package/docs/modules/event-driven-integration-design.md +91 -91
- package/docs/modules/integration.md +250 -250
- package/eslint.config.mjs +34 -34
- package/nest-cli.json +14 -14
- package/package.json +125 -125
- package/server.log +850 -0
- package/src/app.controller.ts +12 -12
- package/src/app.module.ts +66 -66
- package/src/app.service.ts +8 -8
- package/src/config/bull.config.ts +69 -69
- package/src/config/config.module.ts +17 -17
- package/src/config/database.config.ts +48 -48
- package/src/constant/global.constant.ts +67 -67
- package/src/core.module.ts +91 -91
- package/src/decorators/roles.decorator.ts +7 -7
- package/src/dtos/response.dto.ts +6 -6
- package/src/dtos/response.ts +5 -5
- package/src/index.ts +1 -1
- package/src/module/auth/auth.module.ts +49 -49
- package/src/module/auth/controller/auth.controller.ts +28 -28
- package/src/module/auth/guards/google-auth.guard.ts +9 -9
- package/src/module/auth/guards/jwt.guard.ts +22 -22
- package/src/module/auth/guards/role.guard.ts +68 -68
- package/src/module/auth/services/auth.service.ts +50 -50
- package/src/module/auth/services/jwt.service.ts +11 -11
- package/src/module/auth/strategies/google.strategy.ts +54 -54
- package/src/module/auth/strategies/jwt.strategy.ts +58 -58
- package/src/module/auth/strategies/local.strategy.ts +13 -13
- package/src/module/dashboard/controller/dashboard.controller.ts +36 -36
- package/src/module/dashboard/dashboard.module.ts +21 -21
- package/src/module/dashboard/entity/dashboard_page_data.entity.ts +27 -27
- package/src/module/dashboard/entity/widget_master.entity.ts +18 -18
- package/src/module/dashboard/repository/dashboard.repository.ts +42 -42
- package/src/module/dashboard/service/dashboard.service.ts +73 -73
- package/src/module/dev/dev.module.ts +12 -12
- package/src/module/dev/service/dev.service.ts +7 -7
- package/src/module/enterprise/controller/organization.controller.ts +36 -36
- package/src/module/enterprise/enterprise.module.ts +30 -30
- package/src/module/enterprise/entity/enterprise.entity.ts +37 -37
- package/src/module/enterprise/entity/organization-app-mapping.entity.ts +13 -13
- package/src/module/enterprise/entity/organization.entity.ts +92 -92
- package/src/module/enterprise/repository/enterprise.repository.ts +31 -31
- package/src/module/enterprise/repository/organization.repository.ts +26 -26
- package/src/module/enterprise/repository/school.repository.ts +278 -278
- package/src/module/enterprise/service/brand.service.ts +5 -5
- package/src/module/enterprise/service/enterprise.service.ts +16 -16
- package/src/module/enterprise/service/organization-app-mapping.service.ts +4 -4
- package/src/module/enterprise/service/organization.service.ts +145 -145
- package/src/module/entity_json/controller/entity_json.controller.ts +47 -47
- package/src/module/entity_json/entity/entityJson.entity.ts +39 -39
- package/src/module/entity_json/entity_json.module.ts +18 -18
- package/src/module/entity_json/service/entityJson.repository.ts +37 -37
- package/src/module/entity_json/service/entity_json.service.ts +234 -234
- package/src/module/filter/controller/filter.controller.ts +84 -84
- package/src/module/filter/dto/filter-request.dto.ts +38 -38
- package/src/module/filter/entity/saved-filter-detail.entity.ts +41 -41
- package/src/module/filter/entity/saved-filter-master.entity.ts +23 -23
- package/src/module/filter/filter.module.ts +31 -31
- package/src/module/filter/repository/saved-filter.repository.ts +168 -168
- package/src/module/filter/service/filter-evaluator.service.ts +86 -86
- package/src/module/filter/service/filter.service.ts +1359 -1359
- package/src/module/filter/service/saved-filter.service.ts +170 -170
- package/src/module/ics/controller/ics.controller.ts +21 -21
- package/src/module/ics/dto/ics.dto.ts +55 -55
- package/src/module/ics/ics.module.ts +13 -13
- package/src/module/ics/service/ics.service.ts +57 -57
- package/src/module/integration/controller/calender-event.controller.ts +31 -31
- package/src/module/integration/controller/integration.controller.ts +662 -662
- package/src/module/integration/controller/wrapper.controller.ts +37 -37
- package/src/module/integration/dto/create-config.dto.ts +526 -526
- package/src/module/integration/entity/integration-config.entity.ts +112 -112
- package/src/module/integration/entity/integration-entity-mapper.entity.ts +14 -14
- package/src/module/integration/entity/integration-source.entity.ts +17 -17
- package/src/module/integration/entity/user-integration.entity.ts +71 -71
- package/src/module/integration/examples/usage.example.ts +338 -338
- package/src/module/integration/factories/base.factory.ts +7 -7
- package/src/module/integration/factories/email.factory.ts +49 -49
- package/src/module/integration/factories/integration.factory.ts +121 -121
- package/src/module/integration/factories/sms.factory.ts +51 -51
- package/src/module/integration/factories/telephone.factory.ts +41 -41
- package/src/module/integration/factories/whatsapp.factory.ts +56 -56
- package/src/module/integration/integration.module.ts +110 -110
- package/src/module/integration/service/calendar-event.service.ts +118 -118
- package/src/module/integration/service/integration-entity-mapper.service.ts +17 -17
- package/src/module/integration/service/integration-queue.service.ts +229 -229
- package/src/module/integration/service/integration.service.ts +2633 -2633
- package/src/module/integration/service/oauth.service.ts +224 -224
- package/src/module/integration/service/wrapper.service.ts +738 -738
- package/src/module/integration/strategies/email/gmail-api.strategy.ts +280 -280
- package/src/module/integration/strategies/email/outlook-api.strategy.ts +44 -44
- package/src/module/integration/strategies/email/outlook.strategy.ts +64 -64
- package/src/module/integration/strategies/email/sendgrid-api.strategy.ts +260 -260
- package/src/module/integration/strategies/integration.strategy.ts +97 -97
- package/src/module/integration/strategies/sms/gupshup-sms.strategy.ts +146 -146
- package/src/module/integration/strategies/sms/msg91-sms.strategy.ts +164 -164
- package/src/module/integration/strategies/sms/tubelight-sms.strategy.ts +163 -163
- package/src/module/integration/strategies/telephone/ozonetel-voice.strategy.ts +238 -238
- package/src/module/integration/strategies/telephone/tubelight-voice.strategy.ts +210 -210
- package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +359 -359
- package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +372 -372
- package/src/module/integration/strategies/whatsapp/whatsapp-cloud.strategy.ts +403 -403
- package/src/module/integration/strategies/whatsapp/whatsapp.strategy.ts +57 -57
- package/src/module/layout/controller/layout.controller.ts +47 -47
- package/src/module/layout/entity/header-items.entity.ts +28 -28
- package/src/module/layout/entity/header-section.entity.ts +19 -19
- package/src/module/layout/layout.module.ts +21 -21
- package/src/module/layout/repository/header-items.repository.ts +18 -18
- package/src/module/layout/repository/header-section.repository.ts +22 -22
- package/src/module/layout/service/header-section.service.ts +25 -25
- package/src/module/layout_preference/controller/layout_preference.controller.ts +73 -73
- package/src/module/layout_preference/entity/layout_preference.entity.ts +28 -28
- package/src/module/layout_preference/layout_preference.module.ts +22 -22
- package/src/module/layout_preference/repository/layout_preference.repository.ts +65 -65
- package/src/module/layout_preference/service/layout_preference.service.ts +191 -191
- package/src/module/lead/controller/lead.controller.ts +30 -30
- package/src/module/lead/lead.module.ts +14 -14
- package/src/module/lead/repository/lead.repository.ts +41 -41
- package/src/module/lead/service/lead.service.ts +54 -54
- package/src/module/linked_attributes/controller/linked_attributes.controller.ts +37 -37
- package/src/module/linked_attributes/entity/linked_attribute.entity.ts +51 -51
- package/src/module/linked_attributes/linked_attributes.module.ts +16 -16
- package/src/module/linked_attributes/repository/linked_attribute.repository.ts +12 -12
- package/src/module/linked_attributes/service/linked_attributes.service.ts +75 -75
- package/src/module/listmaster/controller/list-master.controller.ts +230 -230
- package/src/module/listmaster/entity/list-master-items.entity.ts +43 -43
- package/src/module/listmaster/entity/list-master.entity.ts +33 -33
- package/src/module/listmaster/listmaster.module.ts +46 -46
- package/src/module/listmaster/repository/list-master-items.repository.ts +173 -173
- package/src/module/listmaster/repository/list-master.repository.ts +46 -46
- package/src/module/listmaster/service/list-master-engine.ts +19 -19
- package/src/module/listmaster/service/list-master-extension.interface.ts +4 -4
- package/src/module/listmaster/service/list-master-item.service.ts +292 -292
- package/src/module/listmaster/service/list-master-registry.ts +15 -15
- package/src/module/listmaster/service/list-master.service.ts +535 -535
- package/src/module/mapper/controller/field-mapper.controller.ts +76 -76
- package/src/module/mapper/controller/mapper.controller.ts +20 -20
- package/src/module/mapper/dto/field-mapper.dto.ts +14 -14
- package/src/module/mapper/entity/field-lovs.entity.ts +19 -19
- package/src/module/mapper/entity/field-mapper.entity.ts +53 -53
- package/src/module/mapper/entity/mapper.entity.ts +16 -16
- package/src/module/mapper/mapper.module.ts +35 -35
- package/src/module/mapper/repository/field-lovs.repository.ts +35 -35
- package/src/module/mapper/repository/field-mapper.repository.ts +42 -42
- package/src/module/mapper/repository/mapper.repository.ts +32 -32
- package/src/module/mapper/service/field-mapper.service.ts +271 -271
- package/src/module/mapper/service/mapper.service.ts +81 -81
- package/src/module/master/controller/master.controller.ts +74 -74
- package/src/module/master/service/master.service.ts +483 -483
- package/src/module/meta/controller/app-master.controller.ts +38 -38
- package/src/module/meta/controller/attribute-master.controller.ts +84 -84
- package/src/module/meta/controller/entity-dynamic.controller.ts +125 -125
- package/src/module/meta/controller/entity-master.controller.ts +41 -41
- package/src/module/meta/controller/entity-relation.controller.ts +36 -36
- package/src/module/meta/controller/entity.controller.ts +392 -392
- package/src/module/meta/controller/entity.public.controller.ts +75 -75
- package/src/module/meta/controller/media.controller.ts +107 -107
- package/src/module/meta/controller/meta.controller.ts +96 -96
- package/src/module/meta/controller/view-master.controller.ts +86 -86
- package/src/module/meta/dto/entity-list-data.dto.ts +6 -6
- package/src/module/meta/dto/entity-tab.dto.ts +4 -4
- package/src/module/meta/dto/entity-table.dto.ts +9 -9
- package/src/module/meta/entity/app-master.entity.ts +34 -34
- package/src/module/meta/entity/attribute-master.entity.ts +92 -92
- package/src/module/meta/entity/base-entity.entity.ts +75 -75
- package/src/module/meta/entity/entity-master.entity.ts +85 -85
- package/src/module/meta/entity/entity-relation-data.entity.ts +29 -29
- package/src/module/meta/entity/entity-relation.entity.ts +23 -23
- package/src/module/meta/entity/entity-table-column.entity.ts +61 -61
- package/src/module/meta/entity/entity-table.entity.ts +50 -50
- package/src/module/meta/entity/media-data.entity.ts +32 -32
- package/src/module/meta/entity/preference.entity.ts +62 -62
- package/src/module/meta/entity/view-master.entity.ts +41 -41
- package/src/module/meta/entity.module.ts +166 -166
- package/src/module/meta/repository/app-master.repository.ts +20 -20
- package/src/module/meta/repository/attribute-master.repository.ts +138 -138
- package/src/module/meta/repository/entity-attribute-update.repository.ts +44 -44
- package/src/module/meta/repository/entity-master.repository.ts +111 -111
- package/src/module/meta/repository/entity-table-column.repository.ts +39 -39
- package/src/module/meta/repository/entity-table.repository.ts +53 -53
- package/src/module/meta/repository/media-data.repository.ts +50 -50
- package/src/module/meta/repository/preference.repository.ts +20 -20
- package/src/module/meta/repository/user-app-mapping.repository.ts +28 -28
- package/src/module/meta/repository/view-master.repository.ts +42 -42
- package/src/module/meta/service/app-master.service.ts +37 -37
- package/src/module/meta/service/attribute-master.service.ts +130 -130
- package/src/module/meta/service/common.service.ts +9 -9
- package/src/module/meta/service/entity-attribute-update.service.ts +28 -28
- package/src/module/meta/service/entity-dynamic.service.ts +857 -857
- package/src/module/meta/service/entity-list.service.ts +205 -205
- package/src/module/meta/service/entity-master.service.ts +171 -171
- package/src/module/meta/service/entity-realation-data.service.ts +9 -9
- package/src/module/meta/service/entity-relation.service.ts +87 -87
- package/src/module/meta/service/entity-service-impl.service.ts +525 -525
- package/src/module/meta/service/entity-table-column.service.ts +39 -39
- package/src/module/meta/service/entity-table.service.ts +150 -150
- package/src/module/meta/service/entity-validation.service.ts +187 -187
- package/src/module/meta/service/entity.service.ts +67 -67
- package/src/module/meta/service/field-group.service.ts +103 -103
- package/src/module/meta/service/media-data.service.ts +507 -507
- package/src/module/meta/service/populate-meta.service.ts +222 -222
- package/src/module/meta/service/preference.service.ts +16 -16
- package/src/module/meta/service/resolver.service.ts +318 -318
- package/src/module/meta/service/section-master.service.ts +104 -104
- package/src/module/meta/service/update-form-json.service.ts +22 -22
- package/src/module/meta/service/user-app-mapping.service.ts +17 -17
- package/src/module/meta/service/view-master.service.ts +127 -127
- package/src/module/microservice-client/microservice-clients.module.ts +13 -13
- package/src/module/microservice-client/service/microservice-client-factory.ts +37 -37
- package/src/module/microservice-client/service/microservice-clients.ts +4 -4
- package/src/module/module/controller/menu.controller.ts +15 -15
- package/src/module/module/controller/module-access.controller.ts +134 -134
- package/src/module/module/entity/menu.entity.ts +43 -43
- package/src/module/module/entity/module-access.entity.ts +25 -25
- package/src/module/module/entity/module-action.entity.ts +17 -17
- package/src/module/module/entity/module.entity.ts +52 -52
- package/src/module/module/module.module.ts +42 -42
- package/src/module/module/repository/menu.repository.ts +191 -191
- package/src/module/module/repository/module-access.repository.ts +344 -344
- package/src/module/module/service/menu.service.ts +82 -82
- package/src/module/module/service/module-access.service.ts +195 -195
- package/src/module/notification/controller/notification.controller.ts +58 -58
- package/src/module/notification/controller/otp.controller.ts +117 -117
- package/src/module/notification/entity/notification.entity.ts +26 -26
- package/src/module/notification/entity/otp.entity.ts +28 -28
- package/src/module/notification/firebase-admin.config.ts +22 -22
- package/src/module/notification/notification.module.ts +69 -69
- package/src/module/notification/repository/otp.repository.ts +27 -27
- package/src/module/notification/service/email.service.ts +127 -127
- package/src/module/notification/service/notification.service.ts +160 -160
- package/src/module/notification/service/otp.service.ts +133 -133
- package/src/module/third-party-module/entity/third-party-api-registry.entity.ts +52 -52
- package/src/module/third-party-module/repository/third-party-api-registry.repository.ts +20 -20
- package/src/module/third-party-module/service/api-registry.service.ts +13 -13
- package/src/module/third-party-module/third-party.module.ts +12 -12
- package/src/module/user/controller/login.controller.ts +198 -198
- package/src/module/user/controller/user.controller.ts +40 -40
- package/src/module/user/dto/create-user.dto.ts +62 -62
- package/src/module/user/dto/update-user.dto.ts +4 -4
- package/src/module/user/entity/role.entity.ts +33 -33
- package/src/module/user/entity/user-role-mapping.entity.ts +38 -38
- package/src/module/user/entity/user-session.entity.ts +73 -73
- package/src/module/user/entity/user.entity.ts +59 -59
- package/src/module/user/repository/role.repository.ts +96 -96
- package/src/module/user/repository/user-role-mapping.repository.ts +126 -126
- package/src/module/user/repository/user.repository.ts +50 -50
- package/src/module/user/repository/userSession.repository.ts +33 -33
- package/src/module/user/service/login.service.ts +326 -326
- package/src/module/user/service/role.service.ts +197 -189
- package/src/module/user/service/user-role-mapping.service.ts +98 -98
- package/src/module/user/service/user-session.service.ts +168 -168
- package/src/module/user/service/user.service.ts +368 -368
- package/src/module/user/user.module.ts +65 -65
- package/src/module/workflow/controller/action-category.controller.ts +54 -54
- package/src/module/workflow/controller/action-resource-mapping.controller.ts +23 -23
- package/src/module/workflow/controller/action-template-mapping.controller.ts +35 -35
- package/src/module/workflow/controller/action.controller.ts +111 -111
- package/src/module/workflow/controller/activity-log.controller.ts +55 -55
- package/src/module/workflow/controller/comm-template.controller.ts +43 -43
- package/src/module/workflow/controller/entity-modification.controller.ts +35 -35
- package/src/module/workflow/controller/form-master.controller.ts +43 -43
- package/src/module/workflow/controller/stage-group.controller.ts +48 -48
- package/src/module/workflow/controller/stage.controller.ts +50 -50
- package/src/module/workflow/controller/task.controller.ts +77 -77
- package/src/module/workflow/controller/workflow-list-master.controller.ts +44 -44
- package/src/module/workflow/controller/workflow-meta.controller.ts +80 -80
- package/src/module/workflow/controller/workflow.controller.ts +67 -67
- package/src/module/workflow/entity/action-category.entity.ts +38 -38
- package/src/module/workflow/entity/action-data.entity.ts +55 -55
- package/src/module/workflow/entity/action-resources-mapping.entity.ts +29 -29
- package/src/module/workflow/entity/action-template-mapping.entity.ts +17 -17
- package/src/module/workflow/entity/action.entity.ts +53 -53
- package/src/module/workflow/entity/activity-log.entity.ts +43 -43
- package/src/module/workflow/entity/comm-template.entity.ts +43 -43
- package/src/module/workflow/entity/entity-modification.entity.ts +38 -38
- package/src/module/workflow/entity/form.entity.ts +25 -25
- package/src/module/workflow/entity/stage-action-mapping.entity.ts +17 -17
- package/src/module/workflow/entity/stage-group.entity.ts +23 -23
- package/src/module/workflow/entity/stage-movement-data.entity.ts +38 -38
- package/src/module/workflow/entity/stage.entity.ts +20 -20
- package/src/module/workflow/entity/task-data.entity.ts +88 -88
- package/src/module/workflow/entity/template-attach-mapper.entity.ts +30 -30
- package/src/module/workflow/entity/workflow-data.entity.ts +11 -11
- package/src/module/workflow/entity/workflow-level-mapping.entity.ts +18 -18
- package/src/module/workflow/entity/workflow.entity.ts +20 -20
- package/src/module/workflow/repository/action-category.repository.ts +79 -79
- package/src/module/workflow/repository/action-data.repository.ts +334 -334
- package/src/module/workflow/repository/action.repository.ts +338 -338
- package/src/module/workflow/repository/activity-log.repository.ts +148 -148
- package/src/module/workflow/repository/comm-template.repository.ts +149 -149
- package/src/module/workflow/repository/form-master.repository.ts +59 -59
- package/src/module/workflow/repository/stage-group.repository.ts +197 -197
- package/src/module/workflow/repository/stage-movement.repository.ts +246 -246
- package/src/module/workflow/repository/stage.repository.ts +172 -172
- package/src/module/workflow/repository/task.repository.ts +134 -134
- package/src/module/workflow/repository/workflow.repository.ts +42 -42
- package/src/module/workflow/service/action-category.service.ts +33 -33
- package/src/module/workflow/service/action-data.service.ts +62 -62
- package/src/module/workflow/service/action-resources-mapping.service.ts +10 -10
- package/src/module/workflow/service/action-template-mapping.service.ts +131 -131
- package/src/module/workflow/service/action.service.ts +279 -279
- package/src/module/workflow/service/activity-log.service.ts +107 -107
- package/src/module/workflow/service/comm-template.service.ts +180 -180
- package/src/module/workflow/service/entity-modification.service.ts +61 -61
- package/src/module/workflow/service/form-master.service.ts +35 -35
- package/src/module/workflow/service/populate-workflow.service.ts +333 -333
- package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
- package/src/module/workflow/service/stage-group.service.ts +342 -342
- package/src/module/workflow/service/stage.service.ts +199 -199
- package/src/module/workflow/service/task.service.ts +547 -547
- package/src/module/workflow/service/workflow-list-master.service.ts +60 -60
- package/src/module/workflow/service/workflow-meta.service.ts +654 -654
- package/src/module/workflow/service/workflow.service.ts +209 -209
- package/src/module/workflow/workflow.module.ts +180 -180
- package/src/module/workflow-automation/SCHEDULING_GUIDE.md +145 -145
- package/src/module/workflow-automation/controller/workflow-automation.controller.ts +43 -43
- package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
- package/src/module/workflow-automation/entity/workflow-automation.entity.ts +40 -40
- package/src/module/workflow-automation/interface/action.decorator.ts +7 -7
- package/src/module/workflow-automation/interface/action.interface.ts +5 -5
- package/src/module/workflow-automation/service/action-registery.service.ts +35 -35
- package/src/module/workflow-automation/service/schedule-handler.service.ts +168 -168
- package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +224 -224
- package/src/module/workflow-automation/service/workflow-automation.service.ts +515 -515
- package/src/module/workflow-automation/workflow-automation.module.ts +54 -54
- package/src/module/workflow-schedule/INSTALLATION.md +244 -244
- package/src/module/workflow-schedule/MULTI_PROJECT_GUIDE.md +196 -196
- package/src/module/workflow-schedule/README.md +422 -422
- package/src/module/workflow-schedule/constants/schedule.constants.ts +48 -48
- package/src/module/workflow-schedule/controller/workflow-schedule.controller.ts +255 -255
- package/src/module/workflow-schedule/docs/CLAUDE_CODE_GUIDE.md +510 -510
- package/src/module/workflow-schedule/docs/CLAUDE_CODE_PROMPT.md +362 -362
- package/src/module/workflow-schedule/docs/RUN_CLAUDE_CODE.sh +68 -68
- package/src/module/workflow-schedule/dto/create-schedule.dto.ts +147 -147
- package/src/module/workflow-schedule/dto/get-execution-logs.dto.ts +119 -119
- package/src/module/workflow-schedule/dto/update-schedule.dto.ts +96 -96
- package/src/module/workflow-schedule/entities/scheduled-workflow.entity.ts +148 -148
- package/src/module/workflow-schedule/entities/workflow-execution-log.entity.ts +154 -154
- package/src/module/workflow-schedule/interfaces/schedule-job-data.interface.ts +53 -53
- package/src/module/workflow-schedule/interfaces/workflow-schedule-options.interface.ts +12 -12
- package/src/module/workflow-schedule/processors/schedule.processor.ts +584 -584
- package/src/module/workflow-schedule/service/workflow-schedule.service.ts +600 -600
- package/src/module/workflow-schedule/workflow-schedule.module.ts +67 -67
- package/src/resources/dev.properties.yaml +31 -31
- package/src/resources/local.properties.yaml +27 -27
- package/src/resources/properties.module.ts +12 -12
- package/src/resources/properties.yaml.ts +11 -11
- package/src/resources/uat.properties.yaml +31 -51
- package/src/table.config.ts +133 -133
- package/src/utils/dto/excel-data.dto.ts +14 -14
- package/src/utils/dto/excelsheet-data.dto.ts +5 -5
- package/src/utils/service/base64util.service.ts +18 -18
- package/src/utils/service/clockIDGenUtil.service.ts +21 -21
- package/src/utils/service/codeGenerator.service.ts +22 -22
- package/src/utils/service/dateUtil.service.ts +17 -17
- package/src/utils/service/encryptUtil.service.ts +97 -97
- package/src/utils/service/excel-helper.service.ts +72 -72
- package/src/utils/service/excelUtil.service.ts +15 -15
- package/src/utils/service/file-util.service.ts +11 -11
- package/src/utils/service/json-util.service.ts +23 -23
- package/src/utils/service/loggingUtil.service.ts +88 -88
- package/src/utils/service/reflection-helper.service.ts +62 -62
- package/src/utils/service/wbsCodeGen.service.ts +8 -8
- package/src/utils/utils.module.ts +27 -27
- package/tsconfig.build.json +4 -4
- package/tsconfig.json +24 -24
|
@@ -109,7 +109,7 @@ let IntegrationService = IntegrationService_1 = class IntegrationService {
|
|
|
109
109
|
}
|
|
110
110
|
async getAllIntegrationData(loggedInUser, integration_type) {
|
|
111
111
|
try {
|
|
112
|
-
const allIntegrationData = await this.dataSource.query(`SELECT *
|
|
112
|
+
const allIntegrationData = await this.dataSource.query(`SELECT *
|
|
113
113
|
FROM frm_integration_master`);
|
|
114
114
|
if (integration_type) {
|
|
115
115
|
return allIntegrationData.filter((data) => data.integration_type.toLowerCase() ===
|
|
@@ -34,10 +34,10 @@ let WrapperService = WrapperService_1 = class WrapperService {
|
|
|
34
34
|
this.loggingService.log('debug', 'wrapperService', 'sendMailWrapper', `sendMailWrapper called. User: ${JSON.stringify(loggedInUser)}, Payload: ${JSON.stringify(payload)}`, [], []);
|
|
35
35
|
const { level_id, level_type, organization_id } = loggedInUser;
|
|
36
36
|
this.loggingService.log('debug', 'wrapperService', 'sendMailWrapper', `Fetching configs for level_id=${level_id}, level_type=${level_type}`, [], []);
|
|
37
|
-
const configs = await this.datasource.query(`SELECT * FROM frm_integration_config
|
|
38
|
-
WHERE level_id = $1
|
|
39
|
-
AND level_type = $2
|
|
40
|
-
AND status = 1
|
|
37
|
+
const configs = await this.datasource.query(`SELECT * FROM frm_integration_config
|
|
38
|
+
WHERE level_id = $1
|
|
39
|
+
AND level_type = $2
|
|
40
|
+
AND status = 1
|
|
41
41
|
AND integration_type = 'EMAIL'`, [level_id, level_type]);
|
|
42
42
|
this.loggingService.log('debug', 'wrapperService', 'sendMailWrapper', `Configs found: ${JSON.stringify(configs)}`, [], []);
|
|
43
43
|
let templateCode;
|
|
@@ -73,9 +73,9 @@ let WrapperService = WrapperService_1 = class WrapperService {
|
|
|
73
73
|
}
|
|
74
74
|
else {
|
|
75
75
|
this.loggingService.log('warn', 'wrapperService', 'sendMailWrapper', `No user-level configs found. Falling back to ORG-level`, [], []);
|
|
76
|
-
const fallbackConfigs = await this.datasource.query(`SELECT * FROM frm_integration_config
|
|
77
|
-
WHERE level_type = 'ORG'
|
|
78
|
-
AND integration_type = 'EMAIL'
|
|
76
|
+
const fallbackConfigs = await this.datasource.query(`SELECT * FROM frm_integration_config
|
|
77
|
+
WHERE level_type = 'ORG'
|
|
78
|
+
AND integration_type = 'EMAIL'
|
|
79
79
|
AND status = 1`);
|
|
80
80
|
this.loggingService.log('debug', 'wrapperService', 'sendMailWrapper', `ORG-level configs: ${JSON.stringify(fallbackConfigs)}`, [], []);
|
|
81
81
|
if (!fallbackConfigs || fallbackConfigs.length === 0) {
|
|
@@ -133,17 +133,17 @@ let WrapperService = WrapperService_1 = class WrapperService {
|
|
|
133
133
|
let resolvedTemplateId = entity?.templateId;
|
|
134
134
|
if (entity.template_code) {
|
|
135
135
|
this.loggingService.log('debug', 'wrapperService', 'sendCommunicationWrapperService', `Looking up template for code=${entity.template_code}, level_id=${level_id}, level_type=${level_type}`, [], []);
|
|
136
|
-
let templates = await this.datasource.query(`SELECT id FROM frm_wf_comm_template
|
|
137
|
-
WHERE code = $1
|
|
138
|
-
AND level_id = $2
|
|
139
|
-
AND level_type = $3
|
|
136
|
+
let templates = await this.datasource.query(`SELECT id FROM frm_wf_comm_template
|
|
137
|
+
WHERE code = $1
|
|
138
|
+
AND level_id = $2
|
|
139
|
+
AND level_type = $3
|
|
140
140
|
LIMIT 1`, [entity.template_code, level_id, level_type]);
|
|
141
141
|
if (!templates || templates.length === 0) {
|
|
142
142
|
this.loggingService.log('warn', 'wrapperService', 'sendCommunicationWrapperService', `No template found for ${entity.template_code} at provided level. Falling back to ORG-level.`, [], []);
|
|
143
|
-
templates = await this.datasource.query(`SELECT id FROM frm_wf_comm_template
|
|
144
|
-
WHERE code = $1
|
|
145
|
-
AND level_type = 'ORG'
|
|
146
|
-
AND organization_id = $2
|
|
143
|
+
templates = await this.datasource.query(`SELECT id FROM frm_wf_comm_template
|
|
144
|
+
WHERE code = $1
|
|
145
|
+
AND level_type = 'ORG'
|
|
146
|
+
AND organization_id = $2
|
|
147
147
|
LIMIT 1`, [entity.template_code, organization_id]);
|
|
148
148
|
}
|
|
149
149
|
if (templates && templates.length > 0) {
|
|
@@ -227,11 +227,11 @@ let WrapperService = WrapperService_1 = class WrapperService {
|
|
|
227
227
|
};
|
|
228
228
|
}
|
|
229
229
|
this.loggingService.log('log', 'wrapperService', 'scheduleMeetingWrapper', `No user-level config found, checking ORG-level...`, [], []);
|
|
230
|
-
const orgConfigs = await this.datasource.query(`SELECT * FROM frm_integration_config
|
|
231
|
-
WHERE level_id = 1
|
|
232
|
-
AND level_type = 'ORG'
|
|
233
|
-
AND integration_type = 'EMAIL'
|
|
234
|
-
AND app_code ='DEFAULT'
|
|
230
|
+
const orgConfigs = await this.datasource.query(`SELECT * FROM frm_integration_config
|
|
231
|
+
WHERE level_id = 1
|
|
232
|
+
AND level_type = 'ORG'
|
|
233
|
+
AND integration_type = 'EMAIL'
|
|
234
|
+
AND app_code ='DEFAULT'
|
|
235
235
|
AND status = 1`, []);
|
|
236
236
|
integrationConfig = await this.integrationService.getSingleActiveConfig(1, 'ORG', 'DEFAULT', 'EMAIL');
|
|
237
237
|
this.loggingService.log('debug', 'wrapperService', 'scheduleMeetingWrapper', `ORG configs found: ${JSON.stringify(orgConfigs)}`, [], []);
|
|
@@ -249,8 +249,8 @@ let WrapperService = WrapperService_1 = class WrapperService {
|
|
|
249
249
|
}
|
|
250
250
|
async getConfigCred(configId) {
|
|
251
251
|
this.loggingService.log('debug', 'wrapperService', 'getConfigCred', `Fetching config JSON for configId=${configId}`, [], []);
|
|
252
|
-
const configRes = await this.datasource.query(`SELECT config_json
|
|
253
|
-
FROM frm_integration_config
|
|
252
|
+
const configRes = await this.datasource.query(`SELECT config_json
|
|
253
|
+
FROM frm_integration_config
|
|
254
254
|
WHERE id = $1`, [configId]);
|
|
255
255
|
this.loggingService.log('debug', 'wrapperService', 'getConfigCred', `Config fetch result: ${JSON.stringify(configRes)}`, [], []);
|
|
256
256
|
return configRes?.[0]?.config_json || null;
|
|
@@ -258,10 +258,10 @@ let WrapperService = WrapperService_1 = class WrapperService {
|
|
|
258
258
|
async sendIcsInvite(payload, levelId, levelType, appCode, organizationId, mapped_entities) {
|
|
259
259
|
this.loggingService.log('log', 'wrapperService', 'sendIcsInvite', `Generating ICS file. Payload: ${JSON.stringify(payload)}`, [], []);
|
|
260
260
|
if (payload.template_code) {
|
|
261
|
-
let templates = await this.datasource.query(`SELECT id FROM frm_wf_comm_template
|
|
262
|
-
WHERE code = $1
|
|
263
|
-
AND level_id = $2
|
|
264
|
-
AND level_type = $3
|
|
261
|
+
let templates = await this.datasource.query(`SELECT id FROM frm_wf_comm_template
|
|
262
|
+
WHERE code = $1
|
|
263
|
+
AND level_id = $2
|
|
264
|
+
AND level_type = $3
|
|
265
265
|
LIMIT 1`, [payload.template_code, levelId, levelType]);
|
|
266
266
|
this.logger.log(`template by code ${JSON.stringify(payload)}`);
|
|
267
267
|
if (templates && templates.length > 0) {
|
|
@@ -132,8 +132,8 @@ let ListMasterItemService = class ListMasterItemService extends entity_service_i
|
|
|
132
132
|
return `Item with name ${code} deleted successfully from type ${listType}`;
|
|
133
133
|
}
|
|
134
134
|
async getListSourceType(loggedInUser, source) {
|
|
135
|
-
const data = await this.dataSource.query(`SELECT name AS label, type AS value
|
|
136
|
-
FROM frm_list_master
|
|
135
|
+
const data = await this.dataSource.query(`SELECT name AS label, type AS value
|
|
136
|
+
FROM frm_list_master
|
|
137
137
|
WHERE organization_id = $1 AND source = $2`, [loggedInUser.organization_id, source]);
|
|
138
138
|
return data;
|
|
139
139
|
}
|
|
@@ -107,10 +107,10 @@ let FieldMapperService = class FieldMapperService extends entity_service_impl_se
|
|
|
107
107
|
entity_data[field.mapped_entity_type];
|
|
108
108
|
}
|
|
109
109
|
else {
|
|
110
|
-
const relations = await this.datasource.query(`SELECT target_entity_id
|
|
111
|
-
FROM frm_entity_relation_data
|
|
112
|
-
WHERE source_entity_type = $1
|
|
113
|
-
AND source_entity_id = $2
|
|
110
|
+
const relations = await this.datasource.query(`SELECT target_entity_id
|
|
111
|
+
FROM frm_entity_relation_data
|
|
112
|
+
WHERE source_entity_type = $1
|
|
113
|
+
AND source_entity_id = $2
|
|
114
114
|
AND target_entity_type = $3`, [parent_type, parent_id, field.mapped_entity_type]);
|
|
115
115
|
const targetEntityIds = relations.map((r) => r.target_entity_id);
|
|
116
116
|
this.loggingService.log('debug', 'fieldMapperService', 'resolveData', `Resolved targetEntityIds: ${targetEntityIds} for entityType: ${entityType}`, [parent_type, parent_id, field.mapped_entity_type], []);
|
|
@@ -18,9 +18,9 @@ let EntityUpdateRepository = class EntityUpdateRepository {
|
|
|
18
18
|
}
|
|
19
19
|
async updateEntityAttribute(entity, config) {
|
|
20
20
|
const { entityType, organization_id } = entity;
|
|
21
|
-
const result = await this.dataSource.query(`SELECT db_table_name
|
|
22
|
-
FROM frm_entity_master
|
|
23
|
-
WHERE mapped_entity_type = ?
|
|
21
|
+
const result = await this.dataSource.query(`SELECT db_table_name
|
|
22
|
+
FROM frm_entity_master
|
|
23
|
+
WHERE mapped_entity_type = ?
|
|
24
24
|
and organization_id = ?`, [config.entity_type, organization_id]);
|
|
25
25
|
if (!result.length) {
|
|
26
26
|
throw new Error("Entity table not found");
|
|
@@ -29,8 +29,8 @@ let EntityMasterRepository = class EntityMasterRepository {
|
|
|
29
29
|
async getEntityById(id) {
|
|
30
30
|
let data = await this.entityMasterRepository.findOne({ where: { id } });
|
|
31
31
|
if (data) {
|
|
32
|
-
let listMasterData = await this.entityMasterRepository.query(`SELECT *
|
|
33
|
-
FROM frm_list_master_items
|
|
32
|
+
let listMasterData = await this.entityMasterRepository.query(`SELECT *
|
|
33
|
+
FROM frm_list_master_items
|
|
34
34
|
where id = $1`, [data?.status]);
|
|
35
35
|
data.status = listMasterData?.[0].name;
|
|
36
36
|
}
|
|
@@ -81,10 +81,10 @@ let EntityMasterRepository = class EntityMasterRepository {
|
|
|
81
81
|
}
|
|
82
82
|
async getAttributesOfTypeDate(entity_type, loggedInUser) {
|
|
83
83
|
const organization_id = loggedInUser.organization_id;
|
|
84
|
-
const attributes = await this.dataSource.query(`SELECT *
|
|
85
|
-
FROM frm_entity_attribute
|
|
86
|
-
WHERE mapped_entity_type = $1
|
|
87
|
-
AND data_type = 'DATE'
|
|
84
|
+
const attributes = await this.dataSource.query(`SELECT *
|
|
85
|
+
FROM frm_entity_attribute
|
|
86
|
+
WHERE mapped_entity_type = $1
|
|
87
|
+
AND data_type = 'DATE'
|
|
88
88
|
AND organization_id = $2`, [entity_type, organization_id]);
|
|
89
89
|
const attributeList = attributes.map((attr) => ({
|
|
90
90
|
label: attr.name,
|
|
@@ -45,19 +45,19 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
45
45
|
if (!entityData.entity_type)
|
|
46
46
|
entityData.entity_type = entityType;
|
|
47
47
|
}
|
|
48
|
-
const statusList = await this.dataSource.query(`
|
|
49
|
-
SELECT id
|
|
50
|
-
FROM frm_list_master_items
|
|
51
|
-
WHERE code = $1
|
|
52
|
-
AND organization_id = $2
|
|
48
|
+
const statusList = await this.dataSource.query(`
|
|
49
|
+
SELECT id
|
|
50
|
+
FROM frm_list_master_items
|
|
51
|
+
WHERE code = $1
|
|
52
|
+
AND organization_id = $2
|
|
53
53
|
`, [global_constant_1.STATUS_ACTIVE, organizationId]);
|
|
54
54
|
if (!entityData.status)
|
|
55
55
|
entityData.status = statusList[0]?.id;
|
|
56
56
|
if (!entityData.code && entityData.entity_type) {
|
|
57
|
-
const result = await this.dataSource.query(`
|
|
58
|
-
SELECT MAX(id) AS max_seq_no
|
|
59
|
-
FROM ${tableName}
|
|
60
|
-
WHERE entity_type = $1
|
|
57
|
+
const result = await this.dataSource.query(`
|
|
58
|
+
SELECT MAX(id) AS max_seq_no
|
|
59
|
+
FROM ${tableName}
|
|
60
|
+
WHERE entity_type = $1
|
|
61
61
|
`, [entityData.entity_type]);
|
|
62
62
|
let maxSeq = Number(result?.[0]?.max_seq_no) || 0;
|
|
63
63
|
maxSeq++;
|
|
@@ -101,9 +101,9 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
101
101
|
}
|
|
102
102
|
const colList = columns.map((c) => `"${c}"`).join(', ');
|
|
103
103
|
const placeholderList = placeholders.join(', ');
|
|
104
|
-
const sql = `
|
|
105
|
-
INSERT INTO ${tableName} (${colList})
|
|
106
|
-
VALUES (${placeholderList}) RETURNING id
|
|
104
|
+
const sql = `
|
|
105
|
+
INSERT INTO ${tableName} (${colList})
|
|
106
|
+
VALUES (${placeholderList}) RETURNING id
|
|
107
107
|
`;
|
|
108
108
|
const result = await this.dataSource.query(sql, values);
|
|
109
109
|
return result[0];
|
|
@@ -204,9 +204,9 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
204
204
|
const updatedMainEntity = await this.updateEntity(entityType, id, mainData, loggedInUser);
|
|
205
205
|
const updatedRelations = {};
|
|
206
206
|
if (mappedEntities) {
|
|
207
|
-
const getRelationDefs = await this.dataSource.query(`SELECT *
|
|
208
|
-
FROM frm_entity_relation
|
|
209
|
-
WHERE organization_id = $1
|
|
207
|
+
const getRelationDefs = await this.dataSource.query(`SELECT *
|
|
208
|
+
FROM frm_entity_relation
|
|
209
|
+
WHERE organization_id = $1
|
|
210
210
|
AND source_entity_type = $2`, [organizationId, entityType]);
|
|
211
211
|
for (const [targetEntityType, rawEntityData] of Object.entries(mappedEntities)) {
|
|
212
212
|
const relationDef = getRelationDefs.find((r) => r.target_entity_type === targetEntityType);
|
|
@@ -216,10 +216,10 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
216
216
|
const entityArray = Array.isArray(rawEntityData)
|
|
217
217
|
? rawEntityData
|
|
218
218
|
: [rawEntityData];
|
|
219
|
-
const existingRelationsForType = await this.dataSource.query(`SELECT *
|
|
220
|
-
FROM frm_entity_relation_data
|
|
221
|
-
WHERE source_entity_type = $1
|
|
222
|
-
AND source_entity_id = $2
|
|
219
|
+
const existingRelationsForType = await this.dataSource.query(`SELECT *
|
|
220
|
+
FROM frm_entity_relation_data
|
|
221
|
+
WHERE source_entity_type = $1
|
|
222
|
+
AND source_entity_id = $2
|
|
223
223
|
AND target_entity_type = $3`, [entityType, id, targetEntityType]);
|
|
224
224
|
const updatedEntities = [];
|
|
225
225
|
for (const item of entityArray) {
|
|
@@ -234,9 +234,9 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
234
234
|
const createdEntity = await this.createEntity(targetEntityType, item, loggedInUser, Number(id));
|
|
235
235
|
targetEntityId = createdEntity.insertId || createdEntity.id;
|
|
236
236
|
entityData = await this.getEntity(targetEntityType, targetEntityId, loggedInUser);
|
|
237
|
-
await this.dataSource.query(`INSERT INTO frm_entity_relation_data
|
|
238
|
-
(organization_id, source_entity_id, source_entity_type, target_entity_id, target_entity_type,
|
|
239
|
-
relation_type)
|
|
237
|
+
await this.dataSource.query(`INSERT INTO frm_entity_relation_data
|
|
238
|
+
(organization_id, source_entity_id, source_entity_type, target_entity_id, target_entity_type,
|
|
239
|
+
relation_type)
|
|
240
240
|
VALUES ($1, $2, $3, $4, $5, $6)`, [
|
|
241
241
|
organizationId,
|
|
242
242
|
id,
|
|
@@ -320,10 +320,10 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
320
320
|
}
|
|
321
321
|
const idPlaceholder = `$${idx}`;
|
|
322
322
|
values.push(id);
|
|
323
|
-
const updateQuery = `
|
|
324
|
-
UPDATE ${tableName}
|
|
325
|
-
SET ${updates.join(', ')}
|
|
326
|
-
WHERE id = ${idPlaceholder}
|
|
323
|
+
const updateQuery = `
|
|
324
|
+
UPDATE ${tableName}
|
|
325
|
+
SET ${updates.join(', ')}
|
|
326
|
+
WHERE id = ${idPlaceholder}
|
|
327
327
|
`;
|
|
328
328
|
return await this.dataSource.query(updateQuery, values);
|
|
329
329
|
}
|
|
@@ -334,8 +334,8 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
334
334
|
const columns = validAttributes
|
|
335
335
|
.map((attr) => `${attr.attribute_key}`)
|
|
336
336
|
.join(', ');
|
|
337
|
-
const selectQuery = `SELECT ${columns}
|
|
338
|
-
FROM ${dataSource}
|
|
337
|
+
const selectQuery = `SELECT ${columns}
|
|
338
|
+
FROM ${dataSource}
|
|
339
339
|
WHERE id = $1`;
|
|
340
340
|
const result = await this.dataSource.query(selectQuery, [id]);
|
|
341
341
|
if (!result.length)
|
|
@@ -364,8 +364,8 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
364
364
|
const columns = validAttributes
|
|
365
365
|
.map((attr) => `t.${attr.attribute_key}`)
|
|
366
366
|
.join(', ');
|
|
367
|
-
const selectQuery = `SELECT ${columns}
|
|
368
|
-
FROM ${tableName} t
|
|
367
|
+
const selectQuery = `SELECT ${columns}
|
|
368
|
+
FROM ${tableName} t
|
|
369
369
|
WHERE id = $1`;
|
|
370
370
|
const result = await this.dataSource.query(selectQuery, [id]);
|
|
371
371
|
if (!result.length)
|
|
@@ -427,16 +427,16 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
427
427
|
async deleteEntity(entityType, id, loggedInUser) {
|
|
428
428
|
const organizationId = loggedInUser.organization_id;
|
|
429
429
|
const tableName = await this.getTableName(entityType, organizationId);
|
|
430
|
-
const deleteQuery = `DELETE
|
|
431
|
-
FROM \`${tableName}\`
|
|
430
|
+
const deleteQuery = `DELETE
|
|
431
|
+
FROM \`${tableName}\`
|
|
432
432
|
WHERE id = $1`;
|
|
433
433
|
const result = await this.dataSource.query(deleteQuery, [id]);
|
|
434
434
|
return result;
|
|
435
435
|
}
|
|
436
436
|
async getEntitiesDropdownList(loggedInUser, appcode) {
|
|
437
437
|
const organizationId = loggedInUser.organization_id;
|
|
438
|
-
let query = `SELECT name as label, mapped_entity_type as value
|
|
439
|
-
FROM frm_entity_master
|
|
438
|
+
let query = `SELECT name as label, mapped_entity_type as value
|
|
439
|
+
FROM frm_entity_master
|
|
440
440
|
WHERE organization_id = $1`;
|
|
441
441
|
const params = [organizationId];
|
|
442
442
|
if (appcode) {
|
|
@@ -453,8 +453,8 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
453
453
|
throw new Error(`Entity type '${entityType}' not found in frm_entity_master for org '${organizationId}'`);
|
|
454
454
|
}
|
|
455
455
|
const tableName = result.db_table_name;
|
|
456
|
-
const seqResult = await this.dataSource.query(`SELECT MAX(id) AS max_seq_no
|
|
457
|
-
FROM ${tableName}
|
|
456
|
+
const seqResult = await this.dataSource.query(`SELECT MAX(id) AS max_seq_no
|
|
457
|
+
FROM ${tableName}
|
|
458
458
|
WHERE entity_type = $1`, [entityType]);
|
|
459
459
|
let maxSeqNo = seqResult?.[0]?.max_seq_no
|
|
460
460
|
? Number(seqResult[0].max_seq_no)
|
|
@@ -75,11 +75,11 @@ let EntityListService = class EntityListService {
|
|
|
75
75
|
}
|
|
76
76
|
getQuery(source, groupByColumn) {
|
|
77
77
|
if (groupByColumn) {
|
|
78
|
-
return `SELECT ${groupByColumn} as tab_value, COUNT(1) AS tab_value_count
|
|
78
|
+
return `SELECT ${groupByColumn} as tab_value, COUNT(1) AS tab_value_count
|
|
79
79
|
FROM ${source}`;
|
|
80
80
|
}
|
|
81
81
|
else {
|
|
82
|
-
return `SELECT *
|
|
82
|
+
return `SELECT *
|
|
83
83
|
FROM ${source}`;
|
|
84
84
|
}
|
|
85
85
|
}
|
|
@@ -123,7 +123,7 @@ let EntityListService = class EntityListService {
|
|
|
123
123
|
return { query, argumentList: argsObjectList };
|
|
124
124
|
}
|
|
125
125
|
async getMaxSequenceNumber(tableName, parentType, parentId) {
|
|
126
|
-
const query = `SELECT max(id) as seq_no
|
|
126
|
+
const query = `SELECT max(id) as seq_no
|
|
127
127
|
FROM ${tableName} WHERE 1=1 `;
|
|
128
128
|
const argsObjectList = [];
|
|
129
129
|
const result = await this.entityManager.query(query, argsObjectList);
|
|
@@ -21,8 +21,8 @@ let EntityRelationService = class EntityRelationService extends entity_service_i
|
|
|
21
21
|
this.entityMasterRepo = entityMasterRepo;
|
|
22
22
|
}
|
|
23
23
|
async getEntityRelations(entityType, loggedInUser, includeSelf = false) {
|
|
24
|
-
const relations = await this.dataSource.query(`SELECT name as label, target_entity_type as value, id
|
|
25
|
-
FROM frm_entity_relation
|
|
24
|
+
const relations = await this.dataSource.query(`SELECT name as label, target_entity_type as value, id
|
|
25
|
+
FROM frm_entity_relation
|
|
26
26
|
WHERE source_entity_type = $1 AND organization_id = $2`, [entityType, loggedInUser.organization_id]);
|
|
27
27
|
if (includeSelf) {
|
|
28
28
|
const entity = await this.entityMasterRepo.getEntityByMappedEntityType(entityType, loggedInUser.organization_id);
|
|
@@ -53,13 +53,13 @@ let EntityRelationService = class EntityRelationService extends entity_service_i
|
|
|
53
53
|
.join(", ");
|
|
54
54
|
params.push(Number(orgId));
|
|
55
55
|
const orgPlaceholder = `$${paramIndex}`;
|
|
56
|
-
const sql = `
|
|
57
|
-
SELECT DISTINCT source_entity_id
|
|
58
|
-
FROM frm_entity_relation_data
|
|
59
|
-
WHERE source_entity_type = ${sourceEntityParam}
|
|
60
|
-
AND target_entity_type = ${targetEntityParam}
|
|
61
|
-
AND target_entity_id IN (${idPlaceholders})
|
|
62
|
-
AND organization_id = ${orgPlaceholder}
|
|
56
|
+
const sql = `
|
|
57
|
+
SELECT DISTINCT source_entity_id
|
|
58
|
+
FROM frm_entity_relation_data
|
|
59
|
+
WHERE source_entity_type = ${sourceEntityParam}
|
|
60
|
+
AND target_entity_type = ${targetEntityParam}
|
|
61
|
+
AND target_entity_id IN (${idPlaceholders})
|
|
62
|
+
AND organization_id = ${orgPlaceholder}
|
|
63
63
|
`;
|
|
64
64
|
const rows = await this.dataSource.query(sql, params);
|
|
65
65
|
return rows.map((r) => Number(r.source_entity_id));
|
|
@@ -50,9 +50,9 @@ let EntityServiceImpl = class EntityServiceImpl {
|
|
|
50
50
|
maxSeqNo = Number(maxSeqNo) + 1;
|
|
51
51
|
entityData.code = entityData.entity_type + maxSeqNo;
|
|
52
52
|
}
|
|
53
|
-
const statusList = await repo.query(`SELECT id
|
|
54
|
-
FROM frm_list_master_items
|
|
55
|
-
WHERE code = $1
|
|
53
|
+
const statusList = await repo.query(`SELECT id
|
|
54
|
+
FROM frm_list_master_items
|
|
55
|
+
WHERE code = $1
|
|
56
56
|
AND organization_id = $2`, [global_constant_1.STATUS_ACTIVE, loggedInUser?.organization_id || 0]);
|
|
57
57
|
console.log('Status List:', statusList);
|
|
58
58
|
console.log(`status_code,${global_constant_1.STATUS_ACTIVE},statusList, ${loggedInUser?.organization_id}`);
|
|
@@ -94,17 +94,17 @@ let ResolverService = class ResolverService {
|
|
|
94
94
|
if (rawValue === null || rawValue === undefined || rawValue === '') {
|
|
95
95
|
return rawValue;
|
|
96
96
|
}
|
|
97
|
-
const [attr] = await this.dataSource.query(`SELECT *
|
|
98
|
-
FROM frm_entity_attribute
|
|
99
|
-
WHERE mapped_entity_type = $1
|
|
100
|
-
AND organization_id = $2
|
|
97
|
+
const [attr] = await this.dataSource.query(`SELECT *
|
|
98
|
+
FROM frm_entity_attribute
|
|
99
|
+
WHERE mapped_entity_type = $1
|
|
100
|
+
AND organization_id = $2
|
|
101
101
|
AND attribute_key = $3`, [entityType, loggedInUser.organization_id, attrKey]);
|
|
102
102
|
if (!attr)
|
|
103
103
|
return rawValue;
|
|
104
104
|
if (attr.data_source_type === 'entity') {
|
|
105
|
-
const [entityDef] = await this.dataSource.query(`SELECT *
|
|
106
|
-
FROM frm_entity_master
|
|
107
|
-
WHERE mapped_entity_type = $1
|
|
105
|
+
const [entityDef] = await this.dataSource.query(`SELECT *
|
|
106
|
+
FROM frm_entity_master
|
|
107
|
+
WHERE mapped_entity_type = $1
|
|
108
108
|
AND organization_id = $2`, [attr.datasource_list, loggedInUser.organization_id]);
|
|
109
109
|
if (!entityDef)
|
|
110
110
|
return rawValue;
|
|
@@ -113,12 +113,12 @@ let ResolverService = class ResolverService {
|
|
|
113
113
|
const resolvedValues = [];
|
|
114
114
|
for (const code of rawValue) {
|
|
115
115
|
const query = tableName === 'sso_organization'
|
|
116
|
-
? `SELECT *
|
|
117
|
-
FROM ${tableName}
|
|
116
|
+
? `SELECT *
|
|
117
|
+
FROM ${tableName}
|
|
118
118
|
WHERE code = $1`
|
|
119
|
-
: `SELECT *
|
|
120
|
-
FROM ${tableName}
|
|
121
|
-
WHERE id = $1
|
|
119
|
+
: `SELECT *
|
|
120
|
+
FROM ${tableName}
|
|
121
|
+
WHERE id = $1
|
|
122
122
|
AND organization_id = $2`;
|
|
123
123
|
const params = tableName === 'sso_organization'
|
|
124
124
|
? [code]
|
|
@@ -130,12 +130,12 @@ let ResolverService = class ResolverService {
|
|
|
130
130
|
}
|
|
131
131
|
else {
|
|
132
132
|
const query = tableName === 'sso_organization'
|
|
133
|
-
? `SELECT *
|
|
134
|
-
FROM ${tableName}
|
|
133
|
+
? `SELECT *
|
|
134
|
+
FROM ${tableName}
|
|
135
135
|
WHERE id = $1`
|
|
136
|
-
: `SELECT *
|
|
137
|
-
FROM ${tableName}
|
|
138
|
-
WHERE id = $1
|
|
136
|
+
: `SELECT *
|
|
137
|
+
FROM ${tableName}
|
|
138
|
+
WHERE id = $1
|
|
139
139
|
AND organization_id = $2`;
|
|
140
140
|
const params = tableName === 'sso_organization'
|
|
141
141
|
? [rawValue]
|
|
@@ -180,28 +180,28 @@ let ResolverService = class ResolverService {
|
|
|
180
180
|
displayValue === '') {
|
|
181
181
|
return displayValue;
|
|
182
182
|
}
|
|
183
|
-
const [attr] = await this.dataSource.query(`SELECT *
|
|
184
|
-
FROM frm_entity_attribute
|
|
185
|
-
WHERE mapped_entity_type = $1
|
|
186
|
-
AND organization_id = $2
|
|
183
|
+
const [attr] = await this.dataSource.query(`SELECT *
|
|
184
|
+
FROM frm_entity_attribute
|
|
185
|
+
WHERE mapped_entity_type = $1
|
|
186
|
+
AND organization_id = $2
|
|
187
187
|
AND attribute_key = $3`, [entityType, loggedInUser.organization_id, attrKey]);
|
|
188
188
|
if (!attr)
|
|
189
189
|
return displayValue;
|
|
190
190
|
if (attr.data_source_type === 'entity') {
|
|
191
|
-
const [entityDef] = await this.dataSource.query(`SELECT *
|
|
192
|
-
FROM frm_entity_master
|
|
193
|
-
WHERE mapped_entity_type = $1
|
|
191
|
+
const [entityDef] = await this.dataSource.query(`SELECT *
|
|
192
|
+
FROM frm_entity_master
|
|
193
|
+
WHERE mapped_entity_type = $1
|
|
194
194
|
AND organization_id = $2`, [attr.datasource_list, loggedInUser.organization_id]);
|
|
195
195
|
if (!entityDef)
|
|
196
196
|
return displayValue;
|
|
197
197
|
const tableName = entityDef.db_table_name;
|
|
198
198
|
const query = tableName === 'sso_organization'
|
|
199
|
-
? `SELECT id
|
|
200
|
-
FROM ${tableName}
|
|
199
|
+
? `SELECT id
|
|
200
|
+
FROM ${tableName}
|
|
201
201
|
WHERE ${attr.data_source_attribute} = $1`
|
|
202
|
-
: `SELECT id
|
|
203
|
-
FROM ${tableName}
|
|
204
|
-
WHERE ${attr.data_source_attribute} = $1
|
|
202
|
+
: `SELECT id
|
|
203
|
+
FROM ${tableName}
|
|
204
|
+
WHERE ${attr.data_source_attribute} = $1
|
|
205
205
|
AND organization_id = $2`;
|
|
206
206
|
const params = tableName === 'sso_organization'
|
|
207
207
|
? [displayValue]
|
|
@@ -210,10 +210,10 @@ let ResolverService = class ResolverService {
|
|
|
210
210
|
return item?.id ?? displayValue;
|
|
211
211
|
}
|
|
212
212
|
else if (attr.data_source_type === 'master') {
|
|
213
|
-
const [item] = await this.dataSource.query(`SELECT id
|
|
214
|
-
FROM frm_list_master_items
|
|
215
|
-
WHERE ${attr.data_source_attribute} = $1
|
|
216
|
-
AND organization_id = $2
|
|
213
|
+
const [item] = await this.dataSource.query(`SELECT id
|
|
214
|
+
FROM frm_list_master_items
|
|
215
|
+
WHERE ${attr.data_source_attribute} = $1
|
|
216
|
+
AND organization_id = $2
|
|
217
217
|
AND listtype = $3`, [displayValue, loggedInUser.organization_id, attr.datasource_list]);
|
|
218
218
|
return item?.id ?? displayValue;
|
|
219
219
|
}
|
|
@@ -62,10 +62,10 @@ let MenuRepository = class MenuRepository extends typeorm_1.Repository {
|
|
|
62
62
|
async getMenuItems(moduleCodes, appcode, levelType) {
|
|
63
63
|
return await this.menuData
|
|
64
64
|
.createQueryBuilder('menu')
|
|
65
|
-
.leftJoin('sso_module', 'module', `
|
|
66
|
-
menu.module_code = module.module_code
|
|
67
|
-
AND LOWER(menu.appcode) = LOWER(module.appcode)
|
|
68
|
-
AND menu.level_type = module.level_type
|
|
65
|
+
.leftJoin('sso_module', 'module', `
|
|
66
|
+
menu.module_code = module.module_code
|
|
67
|
+
AND LOWER(menu.appcode) = LOWER(module.appcode)
|
|
68
|
+
AND menu.level_type = module.level_type
|
|
69
69
|
`)
|
|
70
70
|
.where('menu.module_code IN (:...moduleCodes)', { moduleCodes })
|
|
71
71
|
.andWhere('LOWER(menu.appcode) = LOWER(:appcode)', { appcode })
|
|
@@ -84,16 +84,16 @@ let MenuRepository = class MenuRepository extends typeorm_1.Repository {
|
|
|
84
84
|
async resolveUserRoles(userId, appcode, levelType, levelId) {
|
|
85
85
|
const repo = this.reflectionHelper.getRepoService('UserRoleMapping');
|
|
86
86
|
if (userId) {
|
|
87
|
-
const getUserDetails = await this.dataSource.query(`
|
|
88
|
-
SELECT *
|
|
89
|
-
from sso_user
|
|
90
|
-
where id = $1
|
|
87
|
+
const getUserDetails = await this.dataSource.query(`
|
|
88
|
+
SELECT *
|
|
89
|
+
from sso_user
|
|
90
|
+
where id = $1
|
|
91
91
|
`, [userId]);
|
|
92
|
-
const getUserUrm = await this.dataSource.query(`
|
|
93
|
-
SELECT *
|
|
94
|
-
from sso_user_role_mapping
|
|
95
|
-
where user_id = $1
|
|
96
|
-
and appcode = $2
|
|
92
|
+
const getUserUrm = await this.dataSource.query(`
|
|
93
|
+
SELECT *
|
|
94
|
+
from sso_user_role_mapping
|
|
95
|
+
where user_id = $1
|
|
96
|
+
and appcode = $2
|
|
97
97
|
`, [userId, appcode]);
|
|
98
98
|
if (getUserDetails.length > 0 &&
|
|
99
99
|
getUserDetails[0].organization_id === 1) {
|
|
@@ -112,10 +112,10 @@ let MenuRepository = class MenuRepository extends typeorm_1.Repository {
|
|
|
112
112
|
if (roles.length)
|
|
113
113
|
return roles.map((r) => r.urm_role_id);
|
|
114
114
|
if (levelType === 'SCH') {
|
|
115
|
-
const [sch] = await this.dataSource.query(`
|
|
116
|
-
SELECT s.brand_id, s.organization_id
|
|
117
|
-
FROM sso_school s
|
|
118
|
-
WHERE s.id = $1
|
|
115
|
+
const [sch] = await this.dataSource.query(`
|
|
116
|
+
SELECT s.brand_id, s.organization_id
|
|
117
|
+
FROM sso_school s
|
|
118
|
+
WHERE s.id = $1
|
|
119
119
|
`, [levelId]);
|
|
120
120
|
const brandId = sch?.brand_id;
|
|
121
121
|
const orgId = sch?.organization_id;
|
|
@@ -67,12 +67,12 @@ let NotificationsService = class NotificationsService {
|
|
|
67
67
|
isReadFilter = isRead ? '1' : '0';
|
|
68
68
|
}
|
|
69
69
|
let paramIndex = 1;
|
|
70
|
-
let sql = `
|
|
71
|
-
SELECT n.*
|
|
72
|
-
FROM frm_notification n
|
|
73
|
-
WHERE n.user_id = $${paramIndex}
|
|
74
|
-
AND n.level_id = $${paramIndex + 1}
|
|
75
|
-
AND n.level_type = $${paramIndex + 2}
|
|
70
|
+
let sql = `
|
|
71
|
+
SELECT n.*
|
|
72
|
+
FROM frm_notification n
|
|
73
|
+
WHERE n.user_id = $${paramIndex}
|
|
74
|
+
AND n.level_id = $${paramIndex + 1}
|
|
75
|
+
AND n.level_type = $${paramIndex + 2}
|
|
76
76
|
`;
|
|
77
77
|
const params = [
|
|
78
78
|
String(id),
|
|
@@ -107,10 +107,10 @@ let NotificationsService = class NotificationsService {
|
|
|
107
107
|
}
|
|
108
108
|
async markAllAsRead(loggedInUser) {
|
|
109
109
|
const { id, level_id, level_type } = loggedInUser;
|
|
110
|
-
const query = `
|
|
111
|
-
UPDATE frm_notification
|
|
112
|
-
SET is_read = 1
|
|
113
|
-
WHERE user_id = $1 AND level_id = $2 AND level_type = $3 AND is_read = 0
|
|
110
|
+
const query = `
|
|
111
|
+
UPDATE frm_notification
|
|
112
|
+
SET is_read = 1
|
|
113
|
+
WHERE user_id = $1 AND level_id = $2 AND level_type = $3 AND is_read = 0
|
|
114
114
|
`;
|
|
115
115
|
const params = [id, level_id, level_type];
|
|
116
116
|
const result = await this.dataSource.query(query, params);
|
|
@@ -58,27 +58,27 @@ let LoginController = class LoginController {
|
|
|
58
58
|
try {
|
|
59
59
|
const actualState = state.replace('gmail_config:', '');
|
|
60
60
|
const result = await this.integrationService.handleGmailTokensCallback(email, googleAccessToken, googleRefreshToken, actualState);
|
|
61
|
-
return res.send(`<html><body><script>
|
|
62
|
-
window.opener.postMessage({ type: 'CONFIG_SUCCESS' }, '*');
|
|
63
|
-
window.close();
|
|
61
|
+
return res.send(`<html><body><script>
|
|
62
|
+
window.opener.postMessage({ type: 'CONFIG_SUCCESS' }, '*');
|
|
63
|
+
window.close();
|
|
64
64
|
</script> <p>Configuration successful. You can close this window.</p> </body></html>`);
|
|
65
65
|
}
|
|
66
66
|
catch (error) {
|
|
67
|
-
return res.send(`
|
|
68
|
-
<html>
|
|
69
|
-
<body>
|
|
70
|
-
<script>
|
|
71
|
-
if (window.opener) {
|
|
72
|
-
window.opener.postMessage({
|
|
73
|
-
type: "CONFIG_FAILED",
|
|
74
|
-
error: "${error.message || 'Something went wrong'}"
|
|
75
|
-
}, "*");
|
|
76
|
-
}
|
|
77
|
-
window.close();
|
|
78
|
-
</script>
|
|
79
|
-
<p>Configuration failed. Please close this window.</p>
|
|
80
|
-
</body>
|
|
81
|
-
</html>
|
|
67
|
+
return res.send(`
|
|
68
|
+
<html>
|
|
69
|
+
<body>
|
|
70
|
+
<script>
|
|
71
|
+
if (window.opener) {
|
|
72
|
+
window.opener.postMessage({
|
|
73
|
+
type: "CONFIG_FAILED",
|
|
74
|
+
error: "${error.message || 'Something went wrong'}"
|
|
75
|
+
}, "*");
|
|
76
|
+
}
|
|
77
|
+
window.close();
|
|
78
|
+
</script>
|
|
79
|
+
<p>Configuration failed. Please close this window.</p>
|
|
80
|
+
</body>
|
|
81
|
+
</html>
|
|
82
82
|
`);
|
|
83
83
|
}
|
|
84
84
|
}
|