rez_core 3.1.106 → 3.1.108
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 +9 -0
- package/.idea/codeStyles/Project.xml +59 -0
- package/.idea/codeStyles/codeStyleConfig.xml +5 -0
- 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 +8 -0
- package/.idea/prettier.xml +6 -0
- package/.idea/vcs.xml +6 -0
- 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 +7 -7
- 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 +17 -17
- package/dist/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.js +1 -1
- package/dist/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.js.map +1 -1
- package/dist/module/listmaster/service/list-master-item.service.js +2 -2
- package/dist/module/listmaster/service/list-master.service.js +2 -2
- package/dist/module/mapper/repository/mapper.repository.d.ts +0 -1
- package/dist/module/mapper/repository/mapper.repository.js +0 -3
- package/dist/module/mapper/repository/mapper.repository.js.map +1 -1
- package/dist/module/mapper/service/field-mapper.service.js +4 -4
- package/dist/module/mapper/service/mapper.service.js +3 -3
- package/dist/module/mapper/service/mapper.service.js.map +1 -1
- package/dist/module/meta/service/entity-dynamic.service.js +18 -18
- package/dist/module/meta/service/entity-list.service.js +3 -3
- package/dist/module/meta/service/entity-master.service.js +3 -3
- package/dist/module/meta/service/entity-relation.service.js +11 -11
- package/dist/module/meta/service/entity-service-impl.service.js +3 -3
- package/dist/module/meta/service/resolver.service.js +3 -3
- package/dist/module/module/repository/menu.repository.js +12 -12
- package/dist/module/notification/service/notification.service.js +12 -12
- package/dist/module/user/controller/login.controller.js +18 -18
- package/dist/module/user/service/role.service.js +4 -4
- package/dist/module/user/service/user-session.service.js +2 -2
- package/dist/module/workflow/repository/action.repository.js +16 -16
- 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 +23 -23
- package/dist/module/workflow/repository/stage-movement.repository.js +11 -11
- package/dist/module/workflow/repository/stage.repository.js +8 -8
- package/dist/module/workflow/service/action-template-mapping.service.js +10 -10
- package/dist/module/workflow/service/action.service.js +7 -7
- package/dist/module/workflow/service/entity-modification.service.js +6 -6
- package/dist/module/workflow/service/stage-group.service.js +5 -5
- package/dist/module/workflow/service/stage.service.js +2 -2
- package/dist/module/workflow/service/task.service.js +33 -33
- package/dist/module/workflow/service/workflow-list-master.service.js +15 -15
- package/dist/module/workflow/service/workflow-meta.service.js +50 -50
- package/dist/module/workflow/service/workflow.service.js +2 -2
- 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 +118 -118
- package/server.log +850 -0
- package/src/app.controller.ts +12 -12
- package/src/app.module.ts +49 -49
- package/src/app.service.ts +8 -8
- package/src/config/config.module.ts +18 -18
- package/src/config/database.config.ts +23 -23
- package/src/constant/global.constant.ts +67 -67
- package/src/core.module.ts +81 -81
- 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 +282 -282
- 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/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 +841 -841
- 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 +60 -60
- 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 +39 -39
- 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 +70 -70
- 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 +2530 -2530
- package/src/module/integration/service/oauth.service.ts +224 -224
- package/src/module/integration/service/wrapper.service.ts +373 -373
- package/src/module/integration/strategies/email/gmail-api.strategy.ts +287 -287
- 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 +261 -261
- package/src/module/integration/strategies/integration.strategy.ts +96 -96
- 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 +237 -237
- package/src/module/integration/strategies/telephone/tubelight-voice.strategy.ts +209 -209
- package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +359 -359
- package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +371 -371
- 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 +47 -47
- package/src/module/layout_preference/entity/layout_preference.entity.ts +28 -28
- package/src/module/layout_preference/layout_preference.module.ts +18 -18
- package/src/module/layout_preference/repository/layout_preference.repository.ts +30 -30
- package/src/module/layout_preference/service/layout_preference.service.ts +140 -140
- 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/listmaster/controller/list-master.controller.ts +143 -143
- package/src/module/listmaster/entity/list-master-items.entity.ts +41 -41
- package/src/module/listmaster/entity/list-master.entity.ts +32 -32
- package/src/module/listmaster/listmaster.module.ts +30 -30
- package/src/module/listmaster/repository/list-master-items.repository.ts +169 -169
- package/src/module/listmaster/repository/list-master.repository.ts +46 -46
- package/src/module/listmaster/service/list-master-item.service.ts +292 -292
- package/src/module/listmaster/service/list-master.service.ts +360 -360
- package/src/module/mapper/controller/field-mapper.controller.ts +69 -69
- package/src/module/mapper/controller/mapper.controller.ts +12 -12
- package/src/module/mapper/dto/field-mapper.dto.ts +14 -14
- package/src/module/mapper/entity/field-lovs.entity.ts +20 -20
- package/src/module/mapper/entity/field-mapper.entity.ts +37 -37
- package/src/module/mapper/entity/mapper.entity.ts +17 -17
- package/src/module/mapper/mapper.module.ts +34 -34
- 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 +14 -18
- package/src/module/mapper/service/field-mapper.service.ts +223 -223
- package/src/module/mapper/service/mapper.service.ts +72 -73
- package/src/module/master/controller/master.controller.ts +74 -74
- package/src/module/master/service/master.service.ts +486 -486
- package/src/module/meta/controller/app-master.controller.ts +38 -38
- package/src/module/meta/controller/attribute-master.controller.ts +66 -66
- package/src/module/meta/controller/entity-dynamic.controller.ts +111 -111
- package/src/module/meta/controller/entity-master.controller.ts +28 -28
- package/src/module/meta/controller/entity-relation.controller.ts +36 -36
- package/src/module/meta/controller/entity.controller.ts +385 -385
- package/src/module/meta/controller/media.controller.ts +82 -82
- 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 +87 -87
- package/src/module/meta/entity/base-entity.entity.ts +75 -75
- package/src/module/meta/entity/entity-master.entity.ts +78 -78
- 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 +156 -156
- package/src/module/meta/repository/app-master.repository.ts +20 -20
- package/src/module/meta/repository/attribute-master.repository.ts +110 -110
- package/src/module/meta/repository/entity-master.repository.ts +61 -61
- 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 +117 -117
- package/src/module/meta/service/common.service.ts +9 -9
- package/src/module/meta/service/entity-dynamic.service.ts +711 -711
- package/src/module/meta/service/entity-list.service.ts +205 -205
- package/src/module/meta/service/entity-master.service.ts +164 -164
- package/src/module/meta/service/entity-realation-data.service.ts +9 -9
- package/src/module/meta/service/entity-relation.service.ts +69 -69
- package/src/module/meta/service/entity-service-impl.service.ts +513 -513
- 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 +185 -185
- 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 +140 -140
- package/src/module/meta/service/populate-meta.service.ts +153 -153
- package/src/module/meta/service/preference.service.ts +16 -16
- package/src/module/meta/service/resolver.service.ts +256 -256
- 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 +91 -91
- package/src/module/module/controller/menu.controller.ts +15 -15
- package/src/module/module/controller/module-access.controller.ts +132 -132
- 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 +184 -184
- package/src/module/module/repository/module-access.repository.ts +324 -324
- package/src/module/module/service/menu.service.ts +82 -82
- package/src/module/module/service/module-access.service.ts +209 -209
- 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 +23 -23
- 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 +130 -130
- package/src/module/notification/service/otp.service.ts +121 -121
- 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 +197 -197
- 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 +61 -61
- package/src/module/user/entity/user.entity.ts +68 -68
- 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 +280 -280
- package/src/module/user/service/role.service.ts +189 -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 +353 -353
- 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 +95 -95
- package/src/module/workflow/controller/activity-log.controller.ts +55 -55
- package/src/module/workflow/controller/comm-template.controller.ts +34 -34
- 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 +47 -47
- 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 +50 -50
- 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-master.entity.ts +27 -27
- 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 +219 -219
- package/src/module/workflow/repository/action.repository.ts +277 -277
- package/src/module/workflow/repository/activity-log.repository.ts +121 -121
- package/src/module/workflow/repository/comm-template.repository.ts +142 -142
- package/src/module/workflow/repository/form-master.repository.ts +61 -61
- package/src/module/workflow/repository/stage-group.repository.ts +176 -176
- package/src/module/workflow/repository/stage-movement.repository.ts +227 -227
- package/src/module/workflow/repository/stage.repository.ts +118 -118
- package/src/module/workflow/repository/task.repository.ts +113 -113
- 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 +55 -55
- package/src/module/workflow/service/action.service.ts +247 -247
- package/src/module/workflow/service/activity-log.service.ts +107 -107
- package/src/module/workflow/service/comm-template.service.ts +121 -121
- package/src/module/workflow/service/entity-modification.service.ts +67 -67
- package/src/module/workflow/service/form-master.service.ts +35 -35
- package/src/module/workflow/service/populate-workflow.service.ts +326 -326
- package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
- package/src/module/workflow/service/stage-group.service.ts +300 -300
- package/src/module/workflow/service/stage.service.ts +140 -140
- package/src/module/workflow/service/task.service.ts +503 -503
- package/src/module/workflow/service/workflow-list-master.service.ts +60 -60
- package/src/module/workflow/service/workflow-meta.service.ts +564 -564
- package/src/module/workflow/service/workflow.service.ts +205 -205
- package/src/module/workflow/workflow.module.ts +176 -176
- package/src/module/workflow-automation/controller/workflow-automation.controller.ts +21 -21
- package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
- package/src/module/workflow-automation/entity/workflow-automation.entity.ts +35 -35
- 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/workflow-automation-engine.service.ts +214 -214
- package/src/module/workflow-automation/service/workflow-automation.service.ts +343 -343
- package/src/module/workflow-automation/workflow-automation.module.ts +34 -34
- package/src/resources/dev.properties.yaml +30 -30
- package/src/resources/local.properties.yaml +23 -23
- package/src/resources/properties.module.ts +12 -12
- package/src/resources/properties.yaml.ts +11 -11
- package/src/resources/uat.properties.yaml +15 -15
- 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 +34 -34
- 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 +25 -25
- package/tsconfig.build.json +4 -4
- package/tsconfig.json +24 -24
|
@@ -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 cr_list_master
|
|
135
|
+
const data = await this.dataSource.query(`SELECT name AS label, type AS value
|
|
136
|
+
FROM cr_list_master
|
|
137
137
|
WHERE organization_id = ? AND source = ?`, [loggedInUser.organization_id, source]);
|
|
138
138
|
return data;
|
|
139
139
|
}
|
|
@@ -81,8 +81,8 @@ let ListMasterService = class ListMasterService {
|
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
83
|
else {
|
|
84
|
-
qb.andWhere(`${tableName}.parent_id = :organization_id
|
|
85
|
-
AND ${tableName}.type = 'BRN'
|
|
84
|
+
qb.andWhere(`${tableName}.parent_id = :organization_id
|
|
85
|
+
AND ${tableName}.type = 'BRN'
|
|
86
86
|
`, {
|
|
87
87
|
organization_id: loggedInUser.organization_id,
|
|
88
88
|
});
|
|
@@ -23,9 +23,6 @@ let MapperRepository = class MapperRepository {
|
|
|
23
23
|
async findById(id) {
|
|
24
24
|
return await this.mapperRepository.findById(id);
|
|
25
25
|
}
|
|
26
|
-
async deleteById(id) {
|
|
27
|
-
return await this.mapperRepository.deleteById(id);
|
|
28
|
-
}
|
|
29
26
|
};
|
|
30
27
|
exports.MapperRepository = MapperRepository;
|
|
31
28
|
exports.MapperRepository = MapperRepository = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapper.repository.js","sourceRoot":"","sources":["../../../../src/module/mapper/repository/mapper.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,2DAAiD;AAG1C,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YAC6C,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAE/E,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;
|
|
1
|
+
{"version":3,"file":"mapper.repository.js","sourceRoot":"","sources":["../../../../src/module/mapper/repository/mapper.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,2DAAiD;AAG1C,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YAC6C,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAE/E,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;CACF,CAAA;AATY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,sBAAM,CAAC,CAAA;qCAAoC,gBAAgB;GAFpE,gBAAgB,CAS5B"}
|
|
@@ -95,10 +95,10 @@ let FieldMapperService = class FieldMapperService extends entity_service_impl_se
|
|
|
95
95
|
await super.getResolvedEntityDataByDataSource(entityType, parent_id, userData);
|
|
96
96
|
}
|
|
97
97
|
else {
|
|
98
|
-
const relations = await this.datasource.query(`SELECT target_entity_id
|
|
99
|
-
FROM cr_entity_relation_data
|
|
100
|
-
WHERE source_entity_type = ?
|
|
101
|
-
AND source_entity_id = ?
|
|
98
|
+
const relations = await this.datasource.query(`SELECT target_entity_id
|
|
99
|
+
FROM cr_entity_relation_data
|
|
100
|
+
WHERE source_entity_type = ?
|
|
101
|
+
AND source_entity_id = ?
|
|
102
102
|
AND target_entity_type = ?`, [parent_type, parent_id, field.mapped_entity_type]);
|
|
103
103
|
const targetEntityIds = relations.map((r) => r.target_entity_id);
|
|
104
104
|
if (targetEntityIds.length > 0) {
|
|
@@ -27,8 +27,8 @@ let MapperService = class MapperService extends entity_service_impl_service_1.En
|
|
|
27
27
|
async getByMappedEntityType(mappedEntityType) {
|
|
28
28
|
if (!mappedEntityType)
|
|
29
29
|
return [];
|
|
30
|
-
const mappers = await this.dataSource.query(`SELECT id, name, code, status
|
|
31
|
-
FROM cr_mapper
|
|
30
|
+
const mappers = await this.dataSource.query(`SELECT id, name, code, status
|
|
31
|
+
FROM cr_mapper
|
|
32
32
|
WHERE mapped_entity_type = ?`, [mappedEntityType]);
|
|
33
33
|
const distinctStatuses = [
|
|
34
34
|
...new Set(mappers.map((m) => m.status).filter((s) => s !== null)),
|
|
@@ -54,7 +54,7 @@ let MapperService = class MapperService extends entity_service_impl_service_1.En
|
|
|
54
54
|
await this.fieldLovsRepository.deleteByMapperFieldId(fieldMapper.id);
|
|
55
55
|
}
|
|
56
56
|
await this.fieldMapperRepository.deleteByMapperId(entityId);
|
|
57
|
-
await
|
|
57
|
+
await super.deleteEntity(entityType, entityId, loggedInUser);
|
|
58
58
|
return {
|
|
59
59
|
success: true,
|
|
60
60
|
message: `Mapper deleted successfully.`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapper.service.js","sourceRoot":"","sources":["../../../../src/module/mapper/service/mapper.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,gGAAwF;AACxF,qCAAqC;AACrC,uEAAmE;AACnE,mFAA8E;AAC9E,+EAA0E;AAGnE,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,+CAAiB;IAClD,YACmB,UAAsB,EAC/B,gBAAkC,EAClC,qBAA4C,EAC5C,mBAAwC;QAEhD,KAAK,EAAE,CAAC;QALS,eAAU,GAAV,UAAU,CAAY;QAC/B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,wBAAmB,GAAnB,mBAAmB,CAAqB;IAGlD,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,gBAAwB;QAClD,IAAI,CAAC,gBAAgB;YAAE,OAAO,EAAE,CAAC;QAEjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CACzC;;oCAE8B,EAC9B,CAAC,gBAAgB,CAAC,CACnB,CAAC;QAEF,MAAM,gBAAgB,GAAG;YACvB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;SACnE,CAAC;QAGF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC5B,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAC1C,2DAA2D,EAC3D,CAAC,gBAAgB,CAAC,CACnB,CAAC;YACF,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC1B,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACL,CAAC;QAID,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzB,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,KAAK,EAAE,CAAC,CAAC,IAAI;YACb,KAAK,EAAE,CAAC,CAAC,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI;SACxC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,QAAgB,EAAE,YAAY;QACnE,IAAI,YAAY,GACd,MAAM,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAE5D,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAE5D,MAAM,
|
|
1
|
+
{"version":3,"file":"mapper.service.js","sourceRoot":"","sources":["../../../../src/module/mapper/service/mapper.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,gGAAwF;AACxF,qCAAqC;AACrC,uEAAmE;AACnE,mFAA8E;AAC9E,+EAA0E;AAGnE,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,+CAAiB;IAClD,YACmB,UAAsB,EAC/B,gBAAkC,EAClC,qBAA4C,EAC5C,mBAAwC;QAEhD,KAAK,EAAE,CAAC;QALS,eAAU,GAAV,UAAU,CAAY;QAC/B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,wBAAmB,GAAnB,mBAAmB,CAAqB;IAGlD,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,gBAAwB;QAClD,IAAI,CAAC,gBAAgB;YAAE,OAAO,EAAE,CAAC;QAEjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CACzC;;oCAE8B,EAC9B,CAAC,gBAAgB,CAAC,CACnB,CAAC;QAEF,MAAM,gBAAgB,GAAG;YACvB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;SACnE,CAAC;QAGF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC5B,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAC1C,2DAA2D,EAC3D,CAAC,gBAAgB,CAAC,CACnB,CAAC;YACF,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC1B,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACL,CAAC;QAID,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzB,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,KAAK,EAAE,CAAC,CAAC,IAAI;YACb,KAAK,EAAE,CAAC,CAAC,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI;SACxC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,QAAgB,EAAE,YAAY;QACnE,IAAI,YAAY,GACd,MAAM,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAE5D,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAE5D,MAAM,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC7D,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,8BAA8B;SACxC,CAAC;IACJ,CAAC;CACF,CAAA;AA/DY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;qCAGoB,oBAAU;QACb,oCAAgB;QACX,+CAAqB;QACvB,2CAAmB;GALvC,aAAa,CA+DzB"}
|
|
@@ -41,8 +41,8 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
41
41
|
entityData.entity_type = entityType;
|
|
42
42
|
}
|
|
43
43
|
if (!entityData.code && loggedInUser) {
|
|
44
|
-
const result = await this.dataSource.query(`SELECT MAX(CAST(SUBSTRING(code, LENGTH(entity_type) + 1) AS UNSIGNED)) AS max_seq_no
|
|
45
|
-
FROM ${tableName}
|
|
44
|
+
const result = await this.dataSource.query(`SELECT MAX(CAST(SUBSTRING(code, LENGTH(entity_type) + 1) AS UNSIGNED)) AS max_seq_no
|
|
45
|
+
FROM ${tableName}
|
|
46
46
|
WHERE entity_type = ?`, [entityData.entity_type]);
|
|
47
47
|
let maxSeqNo = result?.[0]?.max_seq_no ? Number(result[0].max_seq_no) : 0;
|
|
48
48
|
maxSeqNo += 1;
|
|
@@ -147,7 +147,7 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
147
147
|
}
|
|
148
148
|
async getEntityWithRelation(entityType, id, loggedInUser) {
|
|
149
149
|
const mainEntity = await this.getEntity(entityType, id, loggedInUser);
|
|
150
|
-
const relatedEntities = await this.dataSource.query(`SELECT * FROM cr_entity_relation_data WHERE source_entity_id = ? AND target_entity_type IN (
|
|
150
|
+
const relatedEntities = await this.dataSource.query(`SELECT * FROM cr_entity_relation_data WHERE source_entity_id = ? AND target_entity_type IN (
|
|
151
151
|
SELECT target_entity_type FROM cr_entity_relation WHERE source_entity_type = ?)`, [id, entityType]);
|
|
152
152
|
const response = {
|
|
153
153
|
entity_type: entityType,
|
|
@@ -205,8 +205,8 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
205
205
|
targetEntityId = createdEntity.insertId || createdEntity.id;
|
|
206
206
|
entityData = await this.getEntity(targetEntityType, targetEntityId, loggedInUser);
|
|
207
207
|
}
|
|
208
|
-
await this.dataSource.query(`INSERT INTO cr_entity_relation_data
|
|
209
|
-
(source_entity_id, source_entity_type, target_entity_id, target_entity_type, relation_type)
|
|
208
|
+
await this.dataSource.query(`INSERT INTO cr_entity_relation_data
|
|
209
|
+
(source_entity_id, source_entity_type, target_entity_id, target_entity_type, relation_type)
|
|
210
210
|
VALUES (?, ?, ?, ?, ?)`, [id, entityType, targetEntityId, targetEntityType, relationType]);
|
|
211
211
|
if (relationType === 'ONE_TO_MANY') {
|
|
212
212
|
updatedEntities.push(entityData);
|
|
@@ -244,8 +244,8 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
244
244
|
entityData.enterprise_id = loggedInUser.enterprise_id;
|
|
245
245
|
}
|
|
246
246
|
if (!entityData.code && loggedInUser) {
|
|
247
|
-
const result = await this.dataSource.query(`SELECT MAX(CAST(SUBSTRING(code, LENGTH(entity_type) + 1) AS UNSIGNED)) AS max_seq_no
|
|
248
|
-
FROM ${tableName}
|
|
247
|
+
const result = await this.dataSource.query(`SELECT MAX(CAST(SUBSTRING(code, LENGTH(entity_type) + 1) AS UNSIGNED)) AS max_seq_no
|
|
248
|
+
FROM ${tableName}
|
|
249
249
|
WHERE entity_type = ?`, [entityData.entity_type]);
|
|
250
250
|
let maxSeqNo = result?.[0]?.max_seq_no ? Number(result[0].max_seq_no) : 0;
|
|
251
251
|
maxSeqNo += 1;
|
|
@@ -358,13 +358,13 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
358
358
|
return result[0].db_table_name;
|
|
359
359
|
}
|
|
360
360
|
async getAttributeCodes(entityType, organizationId) {
|
|
361
|
-
const result = await this.dataSource.query(`SELECT attribute_key,
|
|
362
|
-
MAX(db_datatype) AS db_datatype,
|
|
363
|
-
MAX(element_type) AS element_type,
|
|
364
|
-
MAX(is_hidden) AS is_hidden
|
|
365
|
-
FROM cr_attribute_master
|
|
366
|
-
WHERE mapped_entity_type = ? AND organization_id = ?
|
|
367
|
-
and (is_hidden IS NULL OR is_hidden = 0) -- Exclude hidden attributes
|
|
361
|
+
const result = await this.dataSource.query(`SELECT attribute_key,
|
|
362
|
+
MAX(db_datatype) AS db_datatype,
|
|
363
|
+
MAX(element_type) AS element_type,
|
|
364
|
+
MAX(is_hidden) AS is_hidden
|
|
365
|
+
FROM cr_attribute_master
|
|
366
|
+
WHERE mapped_entity_type = ? AND organization_id = ?
|
|
367
|
+
and (is_hidden IS NULL OR is_hidden = 0) -- Exclude hidden attributes
|
|
368
368
|
GROUP BY attribute_key`, [entityType, organizationId]);
|
|
369
369
|
if (!result.length) {
|
|
370
370
|
console.log(`No attributes found for entity '${entityType}' and org '${organizationId}'`);
|
|
@@ -396,15 +396,15 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
396
396
|
}
|
|
397
397
|
async getCode(entityType, loggedInUser) {
|
|
398
398
|
const organizationId = loggedInUser.organization_id;
|
|
399
|
-
const result = await this.dataSource.query(`SELECT db_table_name
|
|
400
|
-
FROM cr_entity_master
|
|
399
|
+
const result = await this.dataSource.query(`SELECT db_table_name
|
|
400
|
+
FROM cr_entity_master
|
|
401
401
|
WHERE mapped_entity_type = ? AND organization_id = ?`, [entityType, organizationId]);
|
|
402
402
|
if (!result.length) {
|
|
403
403
|
throw new Error(`Entity type '${entityType}' not found in cr_entity_master for org '${organizationId}'`);
|
|
404
404
|
}
|
|
405
405
|
const tableName = result[0].db_table_name;
|
|
406
|
-
const seqResult = await this.dataSource.query(`SELECT MAX(CAST(SUBSTRING(code, LENGTH(entity_type) + 1) AS UNSIGNED)) AS max_seq_no
|
|
407
|
-
FROM \`${tableName}\`
|
|
406
|
+
const seqResult = await this.dataSource.query(`SELECT MAX(CAST(SUBSTRING(code, LENGTH(entity_type) + 1) AS UNSIGNED)) AS max_seq_no
|
|
407
|
+
FROM \`${tableName}\`
|
|
408
408
|
WHERE entity_type = ?`, [entityType]);
|
|
409
409
|
let maxSeqNo = seqResult?.[0]?.max_seq_no
|
|
410
410
|
? 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 COUNT(1) seq_no
|
|
126
|
+
const query = `SELECT COUNT(1) seq_no
|
|
127
127
|
FROM ${tableName} WHERE 1=1 `;
|
|
128
128
|
const argsObjectList = [];
|
|
129
129
|
const result = await this.entityManager.query(query, argsObjectList);
|
|
@@ -70,9 +70,9 @@ let EntityMasterService = class EntityMasterService {
|
|
|
70
70
|
if (!entityMasterData) {
|
|
71
71
|
throw new Error(`Entity master with mapped_entity_type "${entityType}" not found.`);
|
|
72
72
|
}
|
|
73
|
-
const attributes = await this.dataSource.query(`SELECT *
|
|
74
|
-
FROM cr_attribute_master
|
|
75
|
-
WHERE mapped_entity_type = ?
|
|
73
|
+
const attributes = await this.dataSource.query(`SELECT *
|
|
74
|
+
FROM cr_attribute_master
|
|
75
|
+
WHERE mapped_entity_type = ?
|
|
76
76
|
AND organization_id = ? `, [entityMasterData.mapped_entity_type, loggedInUser.organization_id]);
|
|
77
77
|
entityMasterData['attribute_list'] = attributes;
|
|
78
78
|
entityMasterData['operation_list'] = {
|
|
@@ -19,12 +19,12 @@ let EntityRelationService = class EntityRelationService extends entity_service_i
|
|
|
19
19
|
this.dataSource = dataSource;
|
|
20
20
|
}
|
|
21
21
|
async getEntityRelations(entityType, loggedInUser, includeSelf = false) {
|
|
22
|
-
const relations = await this.dataSource.query(`SELECT name as label, target_entity_type as value, id
|
|
23
|
-
FROM cr_entity_relation
|
|
22
|
+
const relations = await this.dataSource.query(`SELECT name as label, target_entity_type as value, id
|
|
23
|
+
FROM cr_entity_relation
|
|
24
24
|
WHERE source_entity_type = ? AND organization_id = ?`, [entityType, loggedInUser.organization_id]);
|
|
25
25
|
if (includeSelf) {
|
|
26
|
-
const [entity] = await this.dataSource.query(`SELECT name as label
|
|
27
|
-
FROM cr_entity_master
|
|
26
|
+
const [entity] = await this.dataSource.query(`SELECT name as label
|
|
27
|
+
FROM cr_entity_master
|
|
28
28
|
WHERE mapped_entity_type = ? AND organization_id = ?`, [entityType, loggedInUser.organization_id]);
|
|
29
29
|
if (entity) {
|
|
30
30
|
relations.unshift({
|
|
@@ -39,13 +39,13 @@ let EntityRelationService = class EntityRelationService extends entity_service_i
|
|
|
39
39
|
async getRelatedEntityIds(sourceEntity, targetEntity, targetIds, orgId) {
|
|
40
40
|
if (!targetIds.length)
|
|
41
41
|
return [];
|
|
42
|
-
const result = await this.dataSource.query(`
|
|
43
|
-
SELECT DISTINCT source_entity_id
|
|
44
|
-
FROM cr_entity_relation_data
|
|
45
|
-
WHERE source_entity_type = ?
|
|
46
|
-
AND target_entity_type = ?
|
|
47
|
-
AND target_entity_id IN (?)
|
|
48
|
-
AND organization_id = ?
|
|
42
|
+
const result = await this.dataSource.query(`
|
|
43
|
+
SELECT DISTINCT source_entity_id
|
|
44
|
+
FROM cr_entity_relation_data
|
|
45
|
+
WHERE source_entity_type = ?
|
|
46
|
+
AND target_entity_type = ?
|
|
47
|
+
AND target_entity_id IN (?)
|
|
48
|
+
AND organization_id = ?
|
|
49
49
|
`, [sourceEntity, targetEntity, targetIds, orgId]);
|
|
50
50
|
return result.map((r) => r.source_entity_id);
|
|
51
51
|
}
|
|
@@ -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 cr_list_master_items
|
|
55
|
-
WHERE code = ?
|
|
53
|
+
const statusList = await repo.query(`SELECT id
|
|
54
|
+
FROM cr_list_master_items
|
|
55
|
+
WHERE code = ?
|
|
56
56
|
AND organization_id = ?`, [global_constant_1.STATUS_ACTIVE, loggedInUser?.organization_id || -1]);
|
|
57
57
|
console.log('Status List:', statusList);
|
|
58
58
|
console.log(`status_code,${global_constant_1.STATUS_ACTIVE},statusList, ${loggedInUser?.organization_id}`);
|
|
@@ -133,12 +133,12 @@ let ResolverService = class ResolverService {
|
|
|
133
133
|
if (displayValue === null || displayValue === undefined || displayValue === '') {
|
|
134
134
|
return displayValue;
|
|
135
135
|
}
|
|
136
|
-
const [attr] = await this.dataSource.query(`SELECT * FROM cr_attribute_master
|
|
136
|
+
const [attr] = await this.dataSource.query(`SELECT * FROM cr_attribute_master
|
|
137
137
|
WHERE mapped_entity_type = ? AND organization_id = ? AND attribute_key = ?`, [entityType, loggedInUser.organization_id, attrKey]);
|
|
138
138
|
if (!attr)
|
|
139
139
|
return displayValue;
|
|
140
140
|
if (attr.data_source_type === 'entity') {
|
|
141
|
-
const [entityDef] = await this.dataSource.query(`SELECT * FROM cr_entity_master
|
|
141
|
+
const [entityDef] = await this.dataSource.query(`SELECT * FROM cr_entity_master
|
|
142
142
|
WHERE mapped_entity_type = ? AND organization_id = ?`, [attr.datasource_list, loggedInUser.organization_id]);
|
|
143
143
|
if (!entityDef)
|
|
144
144
|
return displayValue;
|
|
@@ -153,7 +153,7 @@ let ResolverService = class ResolverService {
|
|
|
153
153
|
return item?.id ?? displayValue;
|
|
154
154
|
}
|
|
155
155
|
else if (attr.data_source_type === 'master') {
|
|
156
|
-
const [item] = await this.dataSource.query(`SELECT id FROM cr_list_master_items
|
|
156
|
+
const [item] = await this.dataSource.query(`SELECT id FROM cr_list_master_items
|
|
157
157
|
WHERE ${attr.data_source_attribute} = ? AND organization_id = ?`, [displayValue, loggedInUser.organization_id]);
|
|
158
158
|
return item?.id ?? displayValue;
|
|
159
159
|
}
|
|
@@ -60,10 +60,10 @@ let MenuRepository = class MenuRepository extends typeorm_1.Repository {
|
|
|
60
60
|
async getMenuItems(moduleCodes, appcode, levelType) {
|
|
61
61
|
return await this.menuData
|
|
62
62
|
.createQueryBuilder('menu')
|
|
63
|
-
.leftJoin('cr_module', 'module', `
|
|
64
|
-
menu.module_code = module.module_code
|
|
65
|
-
AND LOWER(menu.appcode) = LOWER(module.appcode)
|
|
66
|
-
AND menu.level_type = module.level_type
|
|
63
|
+
.leftJoin('cr_module', 'module', `
|
|
64
|
+
menu.module_code = module.module_code
|
|
65
|
+
AND LOWER(menu.appcode) = LOWER(module.appcode)
|
|
66
|
+
AND menu.level_type = module.level_type
|
|
67
67
|
`)
|
|
68
68
|
.where('menu.module_code IN (:...moduleCodes)', { moduleCodes })
|
|
69
69
|
.andWhere('LOWER(menu.appcode) = LOWER(:appcode)', { appcode })
|
|
@@ -82,11 +82,11 @@ let MenuRepository = class MenuRepository extends typeorm_1.Repository {
|
|
|
82
82
|
async resolveUserRoles(userId, appcode, levelType, levelId) {
|
|
83
83
|
const repo = this.dataSource.getRepository(user_role_mapping_entity_1.UserRoleMapping);
|
|
84
84
|
if (userId) {
|
|
85
|
-
const getUserDetails = await this.dataSource.query(`
|
|
86
|
-
SELECT * from cr_user where id = ?
|
|
85
|
+
const getUserDetails = await this.dataSource.query(`
|
|
86
|
+
SELECT * from cr_user where id = ?
|
|
87
87
|
`, [userId]);
|
|
88
|
-
const getUserUrm = await this.dataSource.query(`
|
|
89
|
-
SELECT * from cr_user_role_mapping where user_id = ? and appcode = ?
|
|
88
|
+
const getUserUrm = await this.dataSource.query(`
|
|
89
|
+
SELECT * from cr_user_role_mapping where user_id = ? and appcode = ?
|
|
90
90
|
`, [userId, appcode]);
|
|
91
91
|
if (getUserDetails.length > 0 &&
|
|
92
92
|
getUserDetails[0].organization_id === 1) {
|
|
@@ -105,10 +105,10 @@ let MenuRepository = class MenuRepository extends typeorm_1.Repository {
|
|
|
105
105
|
if (roles.length)
|
|
106
106
|
return roles.map((r) => r.urm_role_id);
|
|
107
107
|
if (levelType === 'SCH') {
|
|
108
|
-
const [sch] = await this.dataSource.query(`
|
|
109
|
-
SELECT s.brand_id, s.organization_id
|
|
110
|
-
FROM eth_school_profile s
|
|
111
|
-
WHERE s.id = ?
|
|
108
|
+
const [sch] = await this.dataSource.query(`
|
|
109
|
+
SELECT s.brand_id, s.organization_id
|
|
110
|
+
FROM eth_school_profile s
|
|
111
|
+
WHERE s.id = ?
|
|
112
112
|
`, [levelId]);
|
|
113
113
|
const brandId = sch?.brand_id;
|
|
114
114
|
const orgId = sch?.organization_id;
|
|
@@ -58,14 +58,14 @@ let NotificationsService = class NotificationsService {
|
|
|
58
58
|
const isReadBool = String(filterQuery.is_read).toLowerCase() === 'true';
|
|
59
59
|
isReadFilter = isReadBool ? 1 : 0;
|
|
60
60
|
}
|
|
61
|
-
let query = `
|
|
62
|
-
SELECT
|
|
63
|
-
n.*,
|
|
64
|
-
u.name AS user_name,
|
|
65
|
-
u.profile_image AS user_profile
|
|
66
|
-
FROM cr_notification n
|
|
67
|
-
LEFT JOIN eth_user_profile u ON n.user_id = u.parent_id
|
|
68
|
-
WHERE n.user_id = ? AND n.level_id = ? AND n.level_type = ?
|
|
61
|
+
let query = `
|
|
62
|
+
SELECT
|
|
63
|
+
n.*,
|
|
64
|
+
u.name AS user_name,
|
|
65
|
+
u.profile_image AS user_profile
|
|
66
|
+
FROM cr_notification n
|
|
67
|
+
LEFT JOIN eth_user_profile u ON n.user_id = u.parent_id
|
|
68
|
+
WHERE n.user_id = ? AND n.level_id = ? AND n.level_type = ?
|
|
69
69
|
`;
|
|
70
70
|
const params = [id, level_id, level_type];
|
|
71
71
|
if (isReadFilter !== undefined) {
|
|
@@ -92,10 +92,10 @@ let NotificationsService = class NotificationsService {
|
|
|
92
92
|
}
|
|
93
93
|
async markAllAsRead(loggedInUser) {
|
|
94
94
|
const { id, level_id, level_type } = loggedInUser;
|
|
95
|
-
const query = `
|
|
96
|
-
UPDATE cr_notification
|
|
97
|
-
SET is_read = 1
|
|
98
|
-
WHERE user_id = ? AND level_id = ? AND level_type = ? AND is_read = 0
|
|
95
|
+
const query = `
|
|
96
|
+
UPDATE cr_notification
|
|
97
|
+
SET is_read = 1
|
|
98
|
+
WHERE user_id = ? AND level_id = ? AND level_type = ? AND is_read = 0
|
|
99
99
|
`;
|
|
100
100
|
const params = [id, level_id, level_type];
|
|
101
101
|
const result = await this.dataSource.query(query, params);
|
|
@@ -57,27 +57,27 @@ let LoginController = class LoginController {
|
|
|
57
57
|
try {
|
|
58
58
|
const actualState = state.replace('gmail_config:', '');
|
|
59
59
|
const result = await this.integrationService.handleGmailTokensCallback(email, googleAccessToken, googleRefreshToken, actualState);
|
|
60
|
-
return res.send(`<html><body><script>
|
|
61
|
-
window.opener.postMessage({ type: 'CONFIG_SUCCESS' }, '*');
|
|
62
|
-
window.close();
|
|
60
|
+
return res.send(`<html><body><script>
|
|
61
|
+
window.opener.postMessage({ type: 'CONFIG_SUCCESS' }, '*');
|
|
62
|
+
window.close();
|
|
63
63
|
</script> <p>Configuration successful. You can close this window.</p> </body></html>`);
|
|
64
64
|
}
|
|
65
65
|
catch (error) {
|
|
66
|
-
return res.send(`
|
|
67
|
-
<html>
|
|
68
|
-
<body>
|
|
69
|
-
<script>
|
|
70
|
-
if (window.opener) {
|
|
71
|
-
window.opener.postMessage({
|
|
72
|
-
type: "CONFIG_FAILED",
|
|
73
|
-
error: "${error.message || 'Something went wrong'}"
|
|
74
|
-
}, "*");
|
|
75
|
-
}
|
|
76
|
-
window.close();
|
|
77
|
-
</script>
|
|
78
|
-
<p>Configuration failed. Please close this window.</p>
|
|
79
|
-
</body>
|
|
80
|
-
</html>
|
|
66
|
+
return res.send(`
|
|
67
|
+
<html>
|
|
68
|
+
<body>
|
|
69
|
+
<script>
|
|
70
|
+
if (window.opener) {
|
|
71
|
+
window.opener.postMessage({
|
|
72
|
+
type: "CONFIG_FAILED",
|
|
73
|
+
error: "${error.message || 'Something went wrong'}"
|
|
74
|
+
}, "*");
|
|
75
|
+
}
|
|
76
|
+
window.close();
|
|
77
|
+
</script>
|
|
78
|
+
<p>Configuration failed. Please close this window.</p>
|
|
79
|
+
</body>
|
|
80
|
+
</html>
|
|
81
81
|
`);
|
|
82
82
|
}
|
|
83
83
|
}
|
|
@@ -76,10 +76,10 @@ let RoleService = class RoleService extends entity_service_impl_service_1.Entity
|
|
|
76
76
|
if (!existingRole) {
|
|
77
77
|
return { success: false, error: 'Role not found' };
|
|
78
78
|
}
|
|
79
|
-
const associatedUsers = await this.entityManager.query(`SELECT map.*
|
|
80
|
-
FROM cr_user_role_mapping map
|
|
81
|
-
JOIN cr_user usr ON map.user_id = usr.id
|
|
82
|
-
WHERE usr.status = ${resolveStatus.id}
|
|
79
|
+
const associatedUsers = await this.entityManager.query(`SELECT map.*
|
|
80
|
+
FROM cr_user_role_mapping map
|
|
81
|
+
JOIN cr_user usr ON map.user_id = usr.id
|
|
82
|
+
WHERE usr.status = ${resolveStatus.id}
|
|
83
83
|
and map.role_id = ${existingRole?.id}`);
|
|
84
84
|
if (associatedUsers.length > 0) {
|
|
85
85
|
return {
|
|
@@ -71,8 +71,8 @@ let UserSessionService = class UserSessionService {
|
|
|
71
71
|
};
|
|
72
72
|
let getUserDetails;
|
|
73
73
|
if (currentUser) {
|
|
74
|
-
getUserDetails = await this.dataSource.query(`
|
|
75
|
-
SELECT * from cr_user where id = ?
|
|
74
|
+
getUserDetails = await this.dataSource.query(`
|
|
75
|
+
SELECT * from cr_user where id = ?
|
|
76
76
|
`, [currentUser.id]);
|
|
77
77
|
}
|
|
78
78
|
if (getUserDetails[0].organization_id == 1 && payload.level_type == 'ORG') {
|
|
@@ -24,10 +24,10 @@ let ActionRepository = class ActionRepository {
|
|
|
24
24
|
}
|
|
25
25
|
async getReasonCode(loggedInUser) {
|
|
26
26
|
const { organization_id } = loggedInUser;
|
|
27
|
-
const result = await this.dataSource.query(`
|
|
28
|
-
SELECT name, type
|
|
29
|
-
FROM cr_list_master
|
|
30
|
-
WHERE organization_id = ? AND source = 'master'
|
|
27
|
+
const result = await this.dataSource.query(`
|
|
28
|
+
SELECT name, type
|
|
29
|
+
FROM cr_list_master
|
|
30
|
+
WHERE organization_id = ? AND source = 'master'
|
|
31
31
|
`, [organization_id]);
|
|
32
32
|
const formatted = result.map((item) => ({
|
|
33
33
|
label: item.name,
|
|
@@ -40,10 +40,10 @@ let ActionRepository = class ActionRepository {
|
|
|
40
40
|
if (!list_type) {
|
|
41
41
|
throw new common_1.BadRequestException('list_type is required');
|
|
42
42
|
}
|
|
43
|
-
const result = await this.dataSource.query(`
|
|
44
|
-
SELECT name, id
|
|
45
|
-
FROM cr_list_master_items
|
|
46
|
-
WHERE listtype = ? AND organization_id = ?
|
|
43
|
+
const result = await this.dataSource.query(`
|
|
44
|
+
SELECT name, id
|
|
45
|
+
FROM cr_list_master_items
|
|
46
|
+
WHERE listtype = ? AND organization_id = ?
|
|
47
47
|
`, [list_type, organization_id]);
|
|
48
48
|
return result.map((row) => ({
|
|
49
49
|
label: row.name,
|
|
@@ -52,19 +52,19 @@ let ActionRepository = class ActionRepository {
|
|
|
52
52
|
}
|
|
53
53
|
async getActions(loggedInUser, stage_id) {
|
|
54
54
|
const { organization_id } = loggedInUser;
|
|
55
|
-
const stageActions = await this.dataSource.query(`
|
|
56
|
-
SELECT id, action_id
|
|
57
|
-
FROM cr_wf_stage_action_mapping
|
|
58
|
-
WHERE stage_id = ?
|
|
55
|
+
const stageActions = await this.dataSource.query(`
|
|
56
|
+
SELECT id, action_id
|
|
57
|
+
FROM cr_wf_stage_action_mapping
|
|
58
|
+
WHERE stage_id = ?
|
|
59
59
|
`, [stage_id]);
|
|
60
60
|
if (!stageActions?.length)
|
|
61
61
|
return [];
|
|
62
62
|
const actionIds = stageActions.map((sa) => sa.action_id);
|
|
63
63
|
const mappingIds = stageActions.map((sa) => sa.id);
|
|
64
|
-
const templateMappings = await this.dataSource.query(`
|
|
65
|
-
SELECT stg_act_mapping_id, template_code
|
|
66
|
-
FROM cr_wf_action_template_mapping
|
|
67
|
-
WHERE stg_act_mapping_id IN (${mappingIds.map(() => '?').join(',')})
|
|
64
|
+
const templateMappings = await this.dataSource.query(`
|
|
65
|
+
SELECT stg_act_mapping_id, template_code
|
|
66
|
+
FROM cr_wf_action_template_mapping
|
|
67
|
+
WHERE stg_act_mapping_id IN (${mappingIds.map(() => '?').join(',')})
|
|
68
68
|
`, mappingIds);
|
|
69
69
|
const templateCodes = templateMappings.map((tm) => tm.template_code);
|
|
70
70
|
const templateCodeToName = {};
|
|
@@ -30,17 +30,17 @@ let CommTemplateRepository = class CommTemplateRepository {
|
|
|
30
30
|
const { organization_id } = loggedInUser;
|
|
31
31
|
let is_template;
|
|
32
32
|
if (action_id) {
|
|
33
|
-
const [actionResult] = await this.dataSource.query(`SELECT is_template
|
|
34
|
-
FROM cr_wf_action
|
|
35
|
-
WHERE id = ? AND organization_id = ?
|
|
33
|
+
const [actionResult] = await this.dataSource.query(`SELECT is_template
|
|
34
|
+
FROM cr_wf_action
|
|
35
|
+
WHERE id = ? AND organization_id = ?
|
|
36
36
|
LIMIT 1`, [action_id, organization_id]);
|
|
37
37
|
if (!actionResult) {
|
|
38
38
|
throw new Error('Invalid action_id');
|
|
39
39
|
}
|
|
40
40
|
is_template = actionResult.is_template;
|
|
41
|
-
await this.dataSource.query(`UPDATE cr_wf_comm_template
|
|
42
|
-
SET is_template = ?
|
|
43
|
-
WHERE mapped_entity_type = ?
|
|
41
|
+
await this.dataSource.query(`UPDATE cr_wf_comm_template
|
|
42
|
+
SET is_template = ?
|
|
43
|
+
WHERE mapped_entity_type = ?
|
|
44
44
|
AND organization_id = ?`, [is_template, entity_type, organization_id]);
|
|
45
45
|
}
|
|
46
46
|
const whereCondition = {
|
|
@@ -25,8 +25,8 @@ let FormMasterRepository = class FormMasterRepository {
|
|
|
25
25
|
this.formRepo = formRepo;
|
|
26
26
|
}
|
|
27
27
|
async getForms(organization_id, source_entity_type) {
|
|
28
|
-
const forms = await this.dataSource.query(`SELECT fm.id as fm_id, fm.name as fm_form_name
|
|
29
|
-
FROM cr_view_master fm
|
|
28
|
+
const forms = await this.dataSource.query(`SELECT fm.id as fm_id, fm.name as fm_form_name
|
|
29
|
+
FROM cr_view_master fm
|
|
30
30
|
WHERE fm.organization_id = ? AND fm.mapped_entity_type = ?`, [organization_id, source_entity_type]);
|
|
31
31
|
const formatted = forms.map((form) => ({
|
|
32
32
|
label: form.fm_form_name,
|
|
@@ -67,33 +67,33 @@ let StageGroupRepository = class StageGroupRepository {
|
|
|
67
67
|
if (!stageGroups.length)
|
|
68
68
|
return [];
|
|
69
69
|
const stageGroupIds = stageGroups.map((sg) => sg.id);
|
|
70
|
-
const stagesRaw = await this.dataSource.query(`
|
|
71
|
-
SELECT
|
|
72
|
-
cr_wf_stage.*
|
|
73
|
-
FROM cr_wf_stage
|
|
74
|
-
WHERE cr_wf_stage.stage_group_id IN (${stageGroupIds.map(() => '?').join(',')})
|
|
75
|
-
AND cr_wf_stage.organization_id = ?
|
|
76
|
-
ORDER BY cr_wf_stage.sequence ASC
|
|
70
|
+
const stagesRaw = await this.dataSource.query(`
|
|
71
|
+
SELECT
|
|
72
|
+
cr_wf_stage.*
|
|
73
|
+
FROM cr_wf_stage
|
|
74
|
+
WHERE cr_wf_stage.stage_group_id IN (${stageGroupIds.map(() => '?').join(',')})
|
|
75
|
+
AND cr_wf_stage.organization_id = ?
|
|
76
|
+
ORDER BY cr_wf_stage.sequence ASC
|
|
77
77
|
`, [...stageGroupIds, loggedInUser.organization_id]);
|
|
78
78
|
const stageIds = stagesRaw.map((s) => s.id);
|
|
79
|
-
const taskCounts = await this.dataSource.query(`
|
|
80
|
-
SELECT stage_id, COUNT(*) AS task_count
|
|
81
|
-
FROM cr_wf_task_data
|
|
82
|
-
WHERE stage_id IN (${stageIds.map(() => '?').join(',')}) AND is_system=0 AND mapped_entity_id = ?
|
|
83
|
-
GROUP BY stage_id
|
|
79
|
+
const taskCounts = await this.dataSource.query(`
|
|
80
|
+
SELECT stage_id, COUNT(*) AS task_count
|
|
81
|
+
FROM cr_wf_task_data
|
|
82
|
+
WHERE stage_id IN (${stageIds.map(() => '?').join(',')}) AND is_system=0 AND mapped_entity_id = ?
|
|
83
|
+
GROUP BY stage_id
|
|
84
84
|
`, [...stageIds, lead_id]);
|
|
85
|
-
const meetingCounts = await this.dataSource.query(`
|
|
86
|
-
SELECT stage_id, COUNT(*) AS meeting_count
|
|
87
|
-
FROM crm_lead_meeting
|
|
88
|
-
WHERE stage_id IN (${stageIds.map(() => '?').join(',')}) AND mapped_entity_id = ?
|
|
89
|
-
GROUP BY stage_id
|
|
85
|
+
const meetingCounts = await this.dataSource.query(`
|
|
86
|
+
SELECT stage_id, COUNT(*) AS meeting_count
|
|
87
|
+
FROM crm_lead_meeting
|
|
88
|
+
WHERE stage_id IN (${stageIds.map(() => '?').join(',')}) AND mapped_entity_id = ?
|
|
89
|
+
GROUP BY stage_id
|
|
90
90
|
`, [...stageIds, lead_id]);
|
|
91
|
-
const sendCommCounts = await this.dataSource.query(`
|
|
92
|
-
SELECT stage_id, COUNT(*) AS send_comm_count
|
|
93
|
-
FROM crm_lead_communication
|
|
94
|
-
WHERE stage_id IN (${stageIds.map(() => '?').join(',')}) AND mapped_entity_id = ?
|
|
95
|
-
AND type IN ('SEND', 'LOG')
|
|
96
|
-
GROUP BY stage_id
|
|
91
|
+
const sendCommCounts = await this.dataSource.query(`
|
|
92
|
+
SELECT stage_id, COUNT(*) AS send_comm_count
|
|
93
|
+
FROM crm_lead_communication
|
|
94
|
+
WHERE stage_id IN (${stageIds.map(() => '?').join(',')}) AND mapped_entity_id = ?
|
|
95
|
+
AND type IN ('SEND', 'LOG')
|
|
96
|
+
GROUP BY stage_id
|
|
97
97
|
`, [...stageIds, lead_id]);
|
|
98
98
|
const taskCountMap = new Map(taskCounts.map((row) => [Number(row.stage_id), Number(row.task_count)]));
|
|
99
99
|
const meetingCountMap = new Map(meetingCounts.map((row) => [
|
|
@@ -107,17 +107,17 @@ let StageMovementRepository = class StageMovementRepository {
|
|
|
107
107
|
return nextStageGroupFirstStage || null;
|
|
108
108
|
}
|
|
109
109
|
async getAllActionByStageId(stageId) {
|
|
110
|
-
const result = await this.dataSource.query(`
|
|
111
|
-
SELECT
|
|
112
|
-
a.*,
|
|
113
|
-
m.stage_id,
|
|
114
|
-
ac.code AS action_category_code,
|
|
115
|
-
arm.form_id
|
|
116
|
-
FROM cr_wf_action a
|
|
117
|
-
LEFT JOIN cr_wf_stage_action_mapping m ON a.id = m.action_id
|
|
118
|
-
LEFT JOIN cr_wf_action_category ac ON a.action_category = ac.id
|
|
119
|
-
LEFT JOIN cr_wf_action_resources_mapping arm ON m.id = arm.stg_act_mapping_id
|
|
120
|
-
WHERE m.stage_id = ?
|
|
110
|
+
const result = await this.dataSource.query(`
|
|
111
|
+
SELECT
|
|
112
|
+
a.*,
|
|
113
|
+
m.stage_id,
|
|
114
|
+
ac.code AS action_category_code,
|
|
115
|
+
arm.form_id
|
|
116
|
+
FROM cr_wf_action a
|
|
117
|
+
LEFT JOIN cr_wf_stage_action_mapping m ON a.id = m.action_id
|
|
118
|
+
LEFT JOIN cr_wf_action_category ac ON a.action_category = ac.id
|
|
119
|
+
LEFT JOIN cr_wf_action_resources_mapping arm ON m.id = arm.stg_act_mapping_id
|
|
120
|
+
WHERE m.stage_id = ?
|
|
121
121
|
`, [stageId]);
|
|
122
122
|
return result;
|
|
123
123
|
}
|