rez_core 6.1.0 → 6.1.2
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/.prettierrc +3 -3
- package/README.md +99 -99
- package/dist/migrations/1732612800000-AddEntityJsonGinIndex.js +10 -10
- package/dist/module/auth/guards/role.guard.js +3 -3
- package/dist/module/filter/service/filter.service.js +19 -19
- package/dist/module/integration/examples/usage.example.js +9 -9
- package/dist/module/meta/repository/attribute-master.repository.js +8 -8
- package/dist/module/meta/service/entity-dynamic.service.js +16 -16
- package/dist/module/meta/service/media-data.service.js +6 -6
- package/dist/module/meta/service/resolver.service.js +5 -5
- package/dist/module/module/repository/menu.repository.js +4 -4
- package/dist/module/user/controller/login.controller.js +18 -18
- package/dist/module/workflow/repository/action.repository.js +2 -2
- package/dist/module/workflow/repository/stage.repository.js +8 -8
- package/dist/module/workflow/service/action-template-mapping.service.js +2 -2
- package/dist/module/workflow/service/action.service.js +5 -5
- package/dist/module/workflow/service/entity-modification.service.js +2 -2
- package/dist/module/workflow/service/task.service.js +8 -8
- package/dist/module/workflow-automation/service/schedule-handler.service.js +9 -9
- package/dist/table.config.d.ts +2 -1
- package/dist/table.config.js +2 -0
- package/dist/table.config.js.map +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/src/app.controller.ts +12 -12
- package/src/app.module.ts +68 -68
- 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 +94 -94
- 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/migrations/1732612800000-AddEntityJsonGinIndex.ts +41 -41
- 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 +56 -56
- 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 +38 -38
- 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 +49 -49
- package/src/module/dashboard/service/dashboard.service.ts +72 -72
- package/src/module/enterprise/controller/organization.controller.ts +36 -36
- package/src/module/enterprise/enterprise.module.ts +45 -45
- 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 +289 -289
- 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 +60 -60
- package/src/module/entity_json/docs/FlatJson_Filterin_System.md +2803 -2803
- package/src/module/entity_json/entity/entityJson.entity.ts +42 -42
- package/src/module/entity_json/entity_json.module.ts +22 -22
- package/src/module/entity_json/service/entityJson.repository.ts +37 -37
- package/src/module/entity_json/service/entity_json.service.ts +428 -428
- package/src/module/export/controller/export.controller.ts +83 -83
- package/src/module/export/export.module.ts +14 -14
- package/src/module/export/service/export.service.ts +105 -105
- package/src/module/filter/controller/filter.controller.ts +87 -87
- package/src/module/filter/dto/filter-request.dto.ts +39 -39
- package/src/module/filter/entity/saved-filter-detail.entity.ts +41 -41
- package/src/module/filter/entity/saved-filter-master.entity.ts +35 -35
- package/src/module/filter/filter.module.ts +41 -41
- package/src/module/filter/repository/saved-filter.repository.ts +247 -247
- package/src/module/filter/repository/saved.filter-detail.repository.ts +19 -19
- package/src/module/filter/service/filter-evaluator.service.ts +82 -82
- package/src/module/filter/service/filter.service.ts +1369 -1369
- package/src/module/filter/service/flatjson-filter.service.ts +903 -903
- package/src/module/filter/service/saved-filter.service.ts +154 -154
- package/src/module/filter/test/flatjson-filter.service.spec.ts +415 -415
- 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 +2639 -2639
- package/src/module/integration/service/oauth.service.ts +224 -224
- package/src/module/integration/service/wrapper.service.ts +754 -754
- 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 +76 -76
- 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 +137 -137
- package/src/module/linked_attributes/dto/create-linked-attribute-smart.dto.ts +54 -54
- package/src/module/linked_attributes/entity/linked_attribute.entity.ts +51 -51
- package/src/module/linked_attributes/linked_attributes.module.ts +23 -23
- package/src/module/linked_attributes/repository/linked_attribute.repository.ts +12 -12
- package/src/module/linked_attributes/service/linked_attributes.service.ts +648 -648
- package/src/module/linked_attributes/test/linked-attributes.service.spec.ts +244 -244
- 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 +56 -56
- 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 +280 -280
- package/src/module/listmaster/service/list-master-registry.ts +15 -15
- package/src/module/listmaster/service/list-master.service.ts +527 -527
- 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 +269 -269
- package/src/module/mapper/service/mapper.service.ts +80 -80
- package/src/module/master/controller/master.controller.ts +74 -74
- package/src/module/master/service/master.service.ts +484 -484
- package/src/module/meta/controller/app-master.controller.ts +38 -38
- package/src/module/meta/controller/attribute-master.controller.ts +96 -96
- 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 +308 -308
- package/src/module/meta/controller/entity.public.controller.ts +75 -75
- package/src/module/meta/controller/media.controller.ts +135 -135
- package/src/module/meta/controller/meta.controller.ts +101 -101
- package/src/module/meta/controller/view-master.controller.ts +79 -79
- 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 +12 -12
- package/src/module/meta/entity/app-master.entity.ts +37 -37
- 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 +91 -91
- 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 +165 -165
- package/src/module/meta/repository/app-master.repository.ts +20 -20
- package/src/module/meta/repository/attribute-master.repository.ts +164 -164
- package/src/module/meta/repository/entity-attribute-update.repository.ts +48 -48
- package/src/module/meta/repository/entity-master.repository.ts +120 -120
- package/src/module/meta/repository/entity-relation.repository.ts +22 -22
- 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 +160 -160
- package/src/module/meta/service/common.service.ts +9 -9
- package/src/module/meta/service/entity-attribute-update.service.ts +26 -26
- package/src/module/meta/service/entity-dynamic.service.ts +824 -824
- package/src/module/meta/service/entity-master.service.ts +172 -172
- package/src/module/meta/service/entity-realation-data.service.ts +9 -9
- package/src/module/meta/service/entity-relation.service.ts +78 -78
- package/src/module/meta/service/entity-service-impl.service.ts +389 -389
- package/src/module/meta/service/entity-table-column.service.ts +26 -26
- package/src/module/meta/service/entity-table.service.ts +171 -171
- package/src/module/meta/service/entity-validation.service.ts +188 -188
- package/src/module/meta/service/entity.service.ts +48 -48
- package/src/module/meta/service/field-group.service.ts +103 -103
- package/src/module/meta/service/media-data.service.ts +591 -591
- 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 +319 -319
- 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 +133 -133
- 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 +186 -186
- 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 +189 -189
- 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 +71 -71
- package/src/module/notification/repository/notification.repository.ts +33 -33
- 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 +146 -146
- 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 +62 -62
- 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 -197
- package/src/module/user/service/user-role-mapping.service.ts +98 -98
- package/src/module/user/service/user-session.service.ts +200 -200
- 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 +49 -49
- package/src/module/workflow/controller/stage.controller.ts +51 -51
- 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 +354 -354
- package/src/module/workflow/repository/action.repository.ts +339 -339
- package/src/module/workflow/repository/activity-log.repository.ts +148 -148
- package/src/module/workflow/repository/comm-template.repository.ts +157 -157
- package/src/module/workflow/repository/form-master.repository.ts +50 -50
- package/src/module/workflow/repository/stage-group.repository.ts +186 -186
- package/src/module/workflow/repository/stage-movement.repository.ts +217 -217
- package/src/module/workflow/repository/stage.repository.ts +160 -160
- package/src/module/workflow/repository/task.repository.ts +156 -156
- 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 +137 -137
- package/src/module/workflow/service/action.service.ts +302 -302
- package/src/module/workflow/service/activity-log.service.ts +107 -107
- package/src/module/workflow/service/comm-template.service.ts +181 -181
- 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 +320 -320
- package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
- package/src/module/workflow/service/stage-group.service.ts +325 -325
- package/src/module/workflow/service/stage.service.ts +197 -197
- package/src/module/workflow/service/task.service.ts +551 -551
- package/src/module/workflow/service/workflow-list-master.service.ts +68 -68
- package/src/module/workflow/service/workflow-meta.service.ts +640 -640
- package/src/module/workflow/service/workflow.service.ts +213 -213
- 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 +219 -219
- package/src/module/workflow-automation/service/workflow-automation.service.ts +474 -474
- 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 +253 -253
- 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 +620 -620
- package/src/module/workflow-schedule/service/workflow-schedule.service.ts +597 -597
- 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 -31
- package/src/table.config.ts +135 -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
package/.prettierrc
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
{
|
|
2
|
-
"singleQuote": true,
|
|
3
|
-
"trailingComma": "all"
|
|
1
|
+
{
|
|
2
|
+
"singleQuote": true,
|
|
3
|
+
"trailingComma": "all"
|
|
4
4
|
}
|
package/README.md
CHANGED
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="120" alt="Nest Logo" /></a>
|
|
3
|
-
</p>
|
|
4
|
-
|
|
5
|
-
[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
|
|
6
|
-
[circleci-url]: https://circleci.com/gh/nestjs/nest
|
|
7
|
-
|
|
8
|
-
<p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
|
|
9
|
-
<p align="center">
|
|
10
|
-
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
|
|
11
|
-
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
|
|
12
|
-
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a>
|
|
13
|
-
<a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a>
|
|
14
|
-
<a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a>
|
|
15
|
-
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
|
|
16
|
-
<a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
|
|
17
|
-
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
|
|
18
|
-
<a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg" alt="Donate us"/></a>
|
|
19
|
-
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a>
|
|
20
|
-
<a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow" alt="Follow us on Twitter"></a>
|
|
21
|
-
</p>
|
|
22
|
-
<!--[](https://opencollective.com/nest#backer)
|
|
23
|
-
[](https://opencollective.com/nest#sponsor)-->
|
|
24
|
-
|
|
25
|
-
## Description
|
|
26
|
-
|
|
27
|
-
[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.
|
|
28
|
-
|
|
29
|
-
## Project setup
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
$ npm install
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Compile and run the project
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
# development
|
|
39
|
-
$ npm run start
|
|
40
|
-
|
|
41
|
-
# watch mode
|
|
42
|
-
$ npm run start:dev
|
|
43
|
-
|
|
44
|
-
# production mode
|
|
45
|
-
$ npm run start:prod
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## Run tests
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
# unit tests
|
|
52
|
-
$ npm run test
|
|
53
|
-
|
|
54
|
-
# e2e tests
|
|
55
|
-
$ npm run test:e2e
|
|
56
|
-
|
|
57
|
-
# test coverage
|
|
58
|
-
$ npm run test:cov
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
## Deployment
|
|
62
|
-
|
|
63
|
-
When you're ready to deploy your NestJS application to production, there are some key steps you can take to ensure it runs as efficiently as possible. Check out the [deployment documentation](https://docs.nestjs.com/deployment) for more information.
|
|
64
|
-
|
|
65
|
-
If you are looking for a cloud-based platform to deploy your NestJS application, check out [Mau](https://mau.nestjs.com), our official platform for deploying NestJS applications on AWS. Mau makes deployment straightforward and fast, requiring just a few simple steps:
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
$ npm install -g mau
|
|
69
|
-
$ mau deploy
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
With Mau, you can deploy your application in just a few clicks, allowing you to focus on building features rather than managing infrastructure.
|
|
73
|
-
|
|
74
|
-
## Resources
|
|
75
|
-
|
|
76
|
-
Check out a few resources that may come in handy when working with NestJS:
|
|
77
|
-
|
|
78
|
-
- Visit the [NestJS Documentation](https://docs.nestjs.com) to learn more about the framework.
|
|
79
|
-
- For questions and support, please visit our [Discord channel](https://discord.gg/G7Qnnhy).
|
|
80
|
-
- To dive deeper and get more hands-on experience, check out our official video [courses](https://courses.nestjs.com/).
|
|
81
|
-
- Deploy your application to AWS with the help of [NestJS Mau](https://mau.nestjs.com) in just a few clicks.
|
|
82
|
-
- Visualize your application graph and interact with the NestJS application in real-time using [NestJS Devtools](https://devtools.nestjs.com).
|
|
83
|
-
- Need help with your project (part-time to full-time)? Check out our official [enterprise support](https://enterprise.nestjs.com).
|
|
84
|
-
- To stay in the loop and get updates, follow us on [X](https://x.com/nestframework) and [LinkedIn](https://linkedin.com/company/nestjs).
|
|
85
|
-
- Looking for a job, or have a job to offer? Check out our official [Jobs board](https://jobs.nestjs.com).
|
|
86
|
-
|
|
87
|
-
## Support
|
|
88
|
-
|
|
89
|
-
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
|
|
90
|
-
|
|
91
|
-
## Stay in touch
|
|
92
|
-
|
|
93
|
-
- Author - [Kamil Myśliwiec](https://twitter.com/kammysliwiec)
|
|
94
|
-
- Website - [https://nestjs.com](https://nestjs.com/)
|
|
95
|
-
- Twitter - [@nestframework](https://twitter.com/nestframework)
|
|
96
|
-
|
|
97
|
-
## License
|
|
98
|
-
|
|
99
|
-
Nest is [MIT licensed](https://github.com/nestjs/nest/blob/master/LICENSE).
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="120" alt="Nest Logo" /></a>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
|
|
6
|
+
[circleci-url]: https://circleci.com/gh/nestjs/nest
|
|
7
|
+
|
|
8
|
+
<p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
|
|
11
|
+
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
|
|
12
|
+
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a>
|
|
13
|
+
<a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a>
|
|
14
|
+
<a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a>
|
|
15
|
+
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
|
|
16
|
+
<a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
|
|
17
|
+
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
|
|
18
|
+
<a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg" alt="Donate us"/></a>
|
|
19
|
+
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a>
|
|
20
|
+
<a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow" alt="Follow us on Twitter"></a>
|
|
21
|
+
</p>
|
|
22
|
+
<!--[](https://opencollective.com/nest#backer)
|
|
23
|
+
[](https://opencollective.com/nest#sponsor)-->
|
|
24
|
+
|
|
25
|
+
## Description
|
|
26
|
+
|
|
27
|
+
[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.
|
|
28
|
+
|
|
29
|
+
## Project setup
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
$ npm install
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Compile and run the project
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# development
|
|
39
|
+
$ npm run start
|
|
40
|
+
|
|
41
|
+
# watch mode
|
|
42
|
+
$ npm run start:dev
|
|
43
|
+
|
|
44
|
+
# production mode
|
|
45
|
+
$ npm run start:prod
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Run tests
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# unit tests
|
|
52
|
+
$ npm run test
|
|
53
|
+
|
|
54
|
+
# e2e tests
|
|
55
|
+
$ npm run test:e2e
|
|
56
|
+
|
|
57
|
+
# test coverage
|
|
58
|
+
$ npm run test:cov
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Deployment
|
|
62
|
+
|
|
63
|
+
When you're ready to deploy your NestJS application to production, there are some key steps you can take to ensure it runs as efficiently as possible. Check out the [deployment documentation](https://docs.nestjs.com/deployment) for more information.
|
|
64
|
+
|
|
65
|
+
If you are looking for a cloud-based platform to deploy your NestJS application, check out [Mau](https://mau.nestjs.com), our official platform for deploying NestJS applications on AWS. Mau makes deployment straightforward and fast, requiring just a few simple steps:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
$ npm install -g mau
|
|
69
|
+
$ mau deploy
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
With Mau, you can deploy your application in just a few clicks, allowing you to focus on building features rather than managing infrastructure.
|
|
73
|
+
|
|
74
|
+
## Resources
|
|
75
|
+
|
|
76
|
+
Check out a few resources that may come in handy when working with NestJS:
|
|
77
|
+
|
|
78
|
+
- Visit the [NestJS Documentation](https://docs.nestjs.com) to learn more about the framework.
|
|
79
|
+
- For questions and support, please visit our [Discord channel](https://discord.gg/G7Qnnhy).
|
|
80
|
+
- To dive deeper and get more hands-on experience, check out our official video [courses](https://courses.nestjs.com/).
|
|
81
|
+
- Deploy your application to AWS with the help of [NestJS Mau](https://mau.nestjs.com) in just a few clicks.
|
|
82
|
+
- Visualize your application graph and interact with the NestJS application in real-time using [NestJS Devtools](https://devtools.nestjs.com).
|
|
83
|
+
- Need help with your project (part-time to full-time)? Check out our official [enterprise support](https://enterprise.nestjs.com).
|
|
84
|
+
- To stay in the loop and get updates, follow us on [X](https://x.com/nestframework) and [LinkedIn](https://linkedin.com/company/nestjs).
|
|
85
|
+
- Looking for a job, or have a job to offer? Check out our official [Jobs board](https://jobs.nestjs.com).
|
|
86
|
+
|
|
87
|
+
## Support
|
|
88
|
+
|
|
89
|
+
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
|
|
90
|
+
|
|
91
|
+
## Stay in touch
|
|
92
|
+
|
|
93
|
+
- Author - [Kamil Myśliwiec](https://twitter.com/kammysliwiec)
|
|
94
|
+
- Website - [https://nestjs.com](https://nestjs.com/)
|
|
95
|
+
- Twitter - [@nestframework](https://twitter.com/nestframework)
|
|
96
|
+
|
|
97
|
+
## License
|
|
98
|
+
|
|
99
|
+
Nest is [MIT licensed](https://github.com/nestjs/nest/blob/master/LICENSE).
|
|
@@ -6,18 +6,18 @@ class AddEntityJsonGinIndex1732612800000 {
|
|
|
6
6
|
this.name = 'AddEntityJsonGinIndex1732612800000';
|
|
7
7
|
}
|
|
8
8
|
async up(queryRunner) {
|
|
9
|
-
await queryRunner.query(`
|
|
10
|
-
CREATE INDEX IF NOT EXISTS idx_entity_json_data_gin
|
|
11
|
-
ON frm_entity_json
|
|
12
|
-
USING GIN (json_data jsonb_path_ops);
|
|
9
|
+
await queryRunner.query(`
|
|
10
|
+
CREATE INDEX IF NOT EXISTS idx_entity_json_data_gin
|
|
11
|
+
ON frm_entity_json
|
|
12
|
+
USING GIN (json_data jsonb_path_ops);
|
|
13
13
|
`);
|
|
14
|
-
await queryRunner.query(`
|
|
15
|
-
CREATE INDEX IF NOT EXISTS idx_entity_json_entity_type
|
|
16
|
-
ON frm_entity_json (entity_type);
|
|
14
|
+
await queryRunner.query(`
|
|
15
|
+
CREATE INDEX IF NOT EXISTS idx_entity_json_entity_type
|
|
16
|
+
ON frm_entity_json (entity_type);
|
|
17
17
|
`);
|
|
18
|
-
await queryRunner.query(`
|
|
19
|
-
CREATE INDEX IF NOT EXISTS idx_entity_json_composite
|
|
20
|
-
ON frm_entity_json (entity_type, entity_id);
|
|
18
|
+
await queryRunner.query(`
|
|
19
|
+
CREATE INDEX IF NOT EXISTS idx_entity_json_composite
|
|
20
|
+
ON frm_entity_json (entity_type, entity_id);
|
|
21
21
|
`);
|
|
22
22
|
console.log('✅ GIN indexes created successfully');
|
|
23
23
|
}
|
|
@@ -34,9 +34,9 @@ let RolesGuard = class RolesGuard {
|
|
|
34
34
|
}
|
|
35
35
|
const requiredModule = this.reflector.get('moduleCode', context.getHandler());
|
|
36
36
|
const requiredActions = this.reflector.get('actions', context.getHandler());
|
|
37
|
-
const roleAccess = await this.entityManager.query(`SELECT *
|
|
38
|
-
FROM sso_module_access
|
|
39
|
-
WHERE role_id = ${user['role_id']}
|
|
37
|
+
const roleAccess = await this.entityManager.query(`SELECT *
|
|
38
|
+
FROM sso_module_access
|
|
39
|
+
WHERE role_id = ${user['role_id']}
|
|
40
40
|
AND module_code = '${requiredModule}'`);
|
|
41
41
|
if (!roleAccess || roleAccess.length === 0) {
|
|
42
42
|
throw new common_1.ForbiddenException('Access denied: No permissions found for this module');
|
|
@@ -64,10 +64,10 @@ let FilterService = class FilterService {
|
|
|
64
64
|
});
|
|
65
65
|
whereSQL = `WHERE ${clauseParts.join(' AND ')}`;
|
|
66
66
|
}
|
|
67
|
-
const rawSQL = `
|
|
68
|
-
SELECT ${column} AS tab_value, COUNT(*) AS tab_value_count
|
|
69
|
-
FROM ${this.schema}.${tableName} ${whereSQL}
|
|
70
|
-
GROUP BY ${column}
|
|
67
|
+
const rawSQL = `
|
|
68
|
+
SELECT ${column} AS tab_value, COUNT(*) AS tab_value_count
|
|
69
|
+
FROM ${this.schema}.${tableName} ${whereSQL}
|
|
70
|
+
GROUP BY ${column}
|
|
71
71
|
`;
|
|
72
72
|
const rows = await this.entityManager.query(rawSQL, values);
|
|
73
73
|
const total = rows.reduce((sum, r) => sum + parseInt(r.tab_value_count, 10), 0);
|
|
@@ -205,21 +205,21 @@ let FilterService = class FilterService {
|
|
|
205
205
|
}
|
|
206
206
|
else if (level_type === 'SCH') {
|
|
207
207
|
baseWhere.push({
|
|
208
|
-
query: `
|
|
209
|
-
(
|
|
210
|
-
(e.level_type = 'SCH' AND e.level_id = '${loggedInUser.level_id}')
|
|
211
|
-
OR
|
|
212
|
-
(
|
|
213
|
-
e.level_type = 'ORG'
|
|
214
|
-
AND e.level_id = '${loggedInUser.enterprise_id}'
|
|
215
|
-
AND e.enterprise_id = '${loggedInUser.enterprise_id}'
|
|
216
|
-
AND e.code NOT IN (
|
|
217
|
-
SELECT sub.code
|
|
218
|
-
FROM frm_wf_comm_template AS sub
|
|
219
|
-
WHERE sub.level_type = 'SCH' AND sub.level_id = '${loggedInUser.level_id}'
|
|
220
|
-
)
|
|
221
|
-
)
|
|
222
|
-
)
|
|
208
|
+
query: `
|
|
209
|
+
(
|
|
210
|
+
(e.level_type = 'SCH' AND e.level_id = '${loggedInUser.level_id}')
|
|
211
|
+
OR
|
|
212
|
+
(
|
|
213
|
+
e.level_type = 'ORG'
|
|
214
|
+
AND e.level_id = '${loggedInUser.enterprise_id}'
|
|
215
|
+
AND e.enterprise_id = '${loggedInUser.enterprise_id}'
|
|
216
|
+
AND e.code NOT IN (
|
|
217
|
+
SELECT sub.code
|
|
218
|
+
FROM frm_wf_comm_template AS sub
|
|
219
|
+
WHERE sub.level_type = 'SCH' AND sub.level_id = '${loggedInUser.level_id}'
|
|
220
|
+
)
|
|
221
|
+
)
|
|
222
|
+
)
|
|
223
223
|
`,
|
|
224
224
|
params: {},
|
|
225
225
|
});
|
|
@@ -104,15 +104,15 @@ class CommunicationUsageExamples {
|
|
|
104
104
|
console.log('Gmail with attachments sent:', result);
|
|
105
105
|
}
|
|
106
106
|
async sendGmailWithTemplate() {
|
|
107
|
-
const htmlTemplate = `
|
|
108
|
-
<html>
|
|
109
|
-
<body>
|
|
110
|
-
<h2>Welcome {{userName}}!</h2>
|
|
111
|
-
<p>Thank you for joining our platform.</p>
|
|
112
|
-
<p>Your account ID is: {{accountId}}</p>
|
|
113
|
-
<a href="{{verificationLink}}">Verify your email</a>
|
|
114
|
-
</body>
|
|
115
|
-
</html>
|
|
107
|
+
const htmlTemplate = `
|
|
108
|
+
<html>
|
|
109
|
+
<body>
|
|
110
|
+
<h2>Welcome {{userName}}!</h2>
|
|
111
|
+
<p>Thank you for joining our platform.</p>
|
|
112
|
+
<p>Your account ID is: {{accountId}}</p>
|
|
113
|
+
<a href="{{verificationLink}}">Verify your email</a>
|
|
114
|
+
</body>
|
|
115
|
+
</html>
|
|
116
116
|
`;
|
|
117
117
|
const result = await this.communicationService.sendGenericMessage({
|
|
118
118
|
levelId: 1,
|
|
@@ -101,18 +101,18 @@ let AttributeMasterRepository = class AttributeMasterRepository {
|
|
|
101
101
|
return null;
|
|
102
102
|
}
|
|
103
103
|
async checkIfColumnExists(tableName, columnName) {
|
|
104
|
-
const result = await this.entityManger.query(`
|
|
105
|
-
SELECT column_name
|
|
106
|
-
FROM information_schema.columns
|
|
107
|
-
WHERE table_name = $1
|
|
108
|
-
AND column_name = $2
|
|
104
|
+
const result = await this.entityManger.query(`
|
|
105
|
+
SELECT column_name
|
|
106
|
+
FROM information_schema.columns
|
|
107
|
+
WHERE table_name = $1
|
|
108
|
+
AND column_name = $2
|
|
109
109
|
`, [tableName, columnName]);
|
|
110
110
|
return result.length > 0;
|
|
111
111
|
}
|
|
112
112
|
async addColumnToTable(tableName, columnName, columnType) {
|
|
113
|
-
const alterQuery = `
|
|
114
|
-
ALTER TABLE ${this.schema}.${tableName}
|
|
115
|
-
ADD COLUMN IF NOT EXISTS ${columnName} ${columnType}
|
|
113
|
+
const alterQuery = `
|
|
114
|
+
ALTER TABLE ${this.schema}.${tableName}
|
|
115
|
+
ADD COLUMN IF NOT EXISTS ${columnName} ${columnType}
|
|
116
116
|
`;
|
|
117
117
|
await this.entityManger.query(alterQuery);
|
|
118
118
|
}
|
|
@@ -58,7 +58,7 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
58
58
|
entityData.status = statusList[0]?.id;
|
|
59
59
|
const entityMaster = await this.entityMasterRepo.getEntityByMappedEntityType(entityType, loggedInUser.enterprise_id);
|
|
60
60
|
if (!entityData.code && entityData.entity_type && entityMaster) {
|
|
61
|
-
const result = this.entityManager.query(`SELECT MAX(id) as seq_no
|
|
61
|
+
const result = this.entityManager.query(`SELECT MAX(id) as seq_no
|
|
62
62
|
FROM ${this.schema}.${entityMaster.db_table_name}`);
|
|
63
63
|
let maxSeq = Number(result[0]?.max_seq_no) || 0;
|
|
64
64
|
maxSeq++;
|
|
@@ -102,9 +102,9 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
102
102
|
}
|
|
103
103
|
const colList = columns.map((c) => `"${c}"`).join(', ');
|
|
104
104
|
const placeholderList = placeholders.join(', ');
|
|
105
|
-
const sql = `
|
|
106
|
-
INSERT INTO ${this.schema}.${tableName} (${colList})
|
|
107
|
-
VALUES (${placeholderList}) RETURNING id
|
|
105
|
+
const sql = `
|
|
106
|
+
INSERT INTO ${this.schema}.${tableName} (${colList})
|
|
107
|
+
VALUES (${placeholderList}) RETURNING id
|
|
108
108
|
`;
|
|
109
109
|
const result = await this.entityManager.query(sql, values);
|
|
110
110
|
return result[0];
|
|
@@ -323,10 +323,10 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
323
323
|
}
|
|
324
324
|
const idPlaceholder = `$${idx}`;
|
|
325
325
|
values.push(id);
|
|
326
|
-
const updateQuery = `
|
|
327
|
-
UPDATE ${this.schema}.${tableName}
|
|
328
|
-
SET ${updates.join(', ')}
|
|
329
|
-
WHERE id = ${idPlaceholder}
|
|
326
|
+
const updateQuery = `
|
|
327
|
+
UPDATE ${this.schema}.${tableName}
|
|
328
|
+
SET ${updates.join(', ')}
|
|
329
|
+
WHERE id = ${idPlaceholder}
|
|
330
330
|
`;
|
|
331
331
|
return await this.entityManager.query(updateQuery, values);
|
|
332
332
|
}
|
|
@@ -337,8 +337,8 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
337
337
|
const columns = validAttributes
|
|
338
338
|
.map((attr) => `${attr.attribute_key}`)
|
|
339
339
|
.join(', ');
|
|
340
|
-
const selectQuery = `SELECT ${columns}
|
|
341
|
-
FROM ${dataSource}
|
|
340
|
+
const selectQuery = `SELECT ${columns}
|
|
341
|
+
FROM ${dataSource}
|
|
342
342
|
WHERE id = $1`;
|
|
343
343
|
const result = await this.entityManager.query(selectQuery, [id]);
|
|
344
344
|
if (!result.length)
|
|
@@ -366,8 +366,8 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
366
366
|
return null;
|
|
367
367
|
const validAttributes = await this.getAttributeCodes(entityType, enterprise_id);
|
|
368
368
|
const columns = validAttributes.map(attr => `t.${attr.attribute_key}`);
|
|
369
|
-
const selectQuery = `SELECT ${columns}
|
|
370
|
-
FROM ${this.schema}.${entityMaster.db_table_name} t
|
|
369
|
+
const selectQuery = `SELECT ${columns}
|
|
370
|
+
FROM ${this.schema}.${entityMaster.db_table_name} t
|
|
371
371
|
WHERE id = $1`;
|
|
372
372
|
const result = await this.entityManager.query(selectQuery, [id]);
|
|
373
373
|
if (!result.length)
|
|
@@ -429,8 +429,8 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
429
429
|
async deleteEntity(entityType, id, loggedInUser) {
|
|
430
430
|
const enterprise_id = loggedInUser.enterprise_id;
|
|
431
431
|
const tableName = await this.getTableName(entityType, enterprise_id);
|
|
432
|
-
const deleteQuery = `DELETE
|
|
433
|
-
FROM ${this.schema}.${tableName}
|
|
432
|
+
const deleteQuery = `DELETE
|
|
433
|
+
FROM ${this.schema}.${tableName}
|
|
434
434
|
WHERE id = $1`;
|
|
435
435
|
const result = await this.entityManager.query(deleteQuery, [id]);
|
|
436
436
|
return result;
|
|
@@ -451,8 +451,8 @@ let EntityDynamicService = class EntityDynamicService {
|
|
|
451
451
|
throw new Error(`Entity type '${entityType}' not found in frm_entity_master for enterprise '${enterprise_id}'`);
|
|
452
452
|
}
|
|
453
453
|
const tableName = result.db_table_name;
|
|
454
|
-
const seqResult = await this.entityManager.query(`SELECT MAX(id) AS max_seq_no
|
|
455
|
-
FROM ${tableName}
|
|
454
|
+
const seqResult = await this.entityManager.query(`SELECT MAX(id) AS max_seq_no
|
|
455
|
+
FROM ${tableName}
|
|
456
456
|
WHERE entity_type = $1`, [entityType]);
|
|
457
457
|
let maxSeqNo = seqResult?.[0]?.max_seq_no
|
|
458
458
|
? Number(seqResult[0].max_seq_no)
|
|
@@ -201,8 +201,8 @@ let MediaDataService = class MediaDataService extends entity_service_impl_servic
|
|
|
201
201
|
const getEntityData = await this.entityMasterService.getEntityData(levelEntityType, loggedInUser);
|
|
202
202
|
if (!getEntityData)
|
|
203
203
|
return null;
|
|
204
|
-
const levelEntityDataResult = await this.entityManager.query(`SELECT *
|
|
205
|
-
FROM ${getEntityData?.db_table_name}
|
|
204
|
+
const levelEntityDataResult = await this.entityManager.query(`SELECT *
|
|
205
|
+
FROM ${getEntityData?.db_table_name}
|
|
206
206
|
WHERE id = $1`, [levelEntityId]);
|
|
207
207
|
const levelEntityData = levelEntityDataResult[0] || null;
|
|
208
208
|
if (levelEntityData?.code) {
|
|
@@ -223,8 +223,8 @@ let MediaDataService = class MediaDataService extends entity_service_impl_servic
|
|
|
223
223
|
const getEntityData = await this.entityMasterService.getEntityData(mappedEntityType, loggedInUser);
|
|
224
224
|
if (!getEntityData)
|
|
225
225
|
return null;
|
|
226
|
-
const levelEntityDataResult = await this.entityManager.query(`SELECT *
|
|
227
|
-
FROM ${getEntityData?.db_table_name}
|
|
226
|
+
const levelEntityDataResult = await this.entityManager.query(`SELECT *
|
|
227
|
+
FROM ${getEntityData?.db_table_name}
|
|
228
228
|
WHERE id = $1`, [mappedEntityId]);
|
|
229
229
|
if (levelEntityDataResult?.[0].code &&
|
|
230
230
|
parentType != 'SCH' &&
|
|
@@ -236,8 +236,8 @@ let MediaDataService = class MediaDataService extends entity_service_impl_servic
|
|
|
236
236
|
const getEntityData = await this.entityMasterService.getEntityData(mappedEntityType, loggedInUser);
|
|
237
237
|
if (!getEntityData)
|
|
238
238
|
return null;
|
|
239
|
-
const levelEntityDataResult = await this.entityManager.query(`SELECT *
|
|
240
|
-
FROM ${getEntityData?.db_table_name}
|
|
239
|
+
const levelEntityDataResult = await this.entityManager.query(`SELECT *
|
|
240
|
+
FROM ${getEntityData?.db_table_name}
|
|
241
241
|
WHERE id = $1`, [mappedEntityId]);
|
|
242
242
|
replacements['template_code'] = levelEntityDataResult?.[0].code;
|
|
243
243
|
pathTemplate = '${org_code}/${level_code}/template/${template_code}';
|
|
@@ -168,12 +168,12 @@ let ResolverService = class ResolverService {
|
|
|
168
168
|
return displayValue;
|
|
169
169
|
const tableName = entityDef.db_table_name;
|
|
170
170
|
const query = tableName === 'sso_organization'
|
|
171
|
-
? `SELECT id
|
|
172
|
-
FROM ${tableName}
|
|
171
|
+
? `SELECT id
|
|
172
|
+
FROM ${tableName}
|
|
173
173
|
WHERE ${attr.data_source_attribute} = $1`
|
|
174
|
-
: `SELECT id
|
|
175
|
-
FROM ${tableName}
|
|
176
|
-
WHERE ${attr.data_source_attribute} = $1
|
|
174
|
+
: `SELECT id
|
|
175
|
+
FROM ${tableName}
|
|
176
|
+
WHERE ${attr.data_source_attribute} = $1
|
|
177
177
|
AND enterprise_id = $2`;
|
|
178
178
|
const params = tableName === 'sso_organization'
|
|
179
179
|
? [displayValue]
|
|
@@ -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('sso_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('sso_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 })
|
|
@@ -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
|
}
|
|
@@ -114,8 +114,8 @@ let ActionRepository = class ActionRepository {
|
|
|
114
114
|
])
|
|
115
115
|
.from('frm_wf_action', 'a')
|
|
116
116
|
.leftJoin('frm_wf_action_category', 'ac', 'ac.id::text = a.action_category')
|
|
117
|
-
.leftJoin('frm_list_master_items', 'ar', `ar.id::text = a.action_requirement
|
|
118
|
-
AND ar.listtype = 'ACRQ'
|
|
117
|
+
.leftJoin('frm_list_master_items', 'ar', `ar.id::text = a.action_requirement
|
|
118
|
+
AND ar.listtype = 'ACRQ'
|
|
119
119
|
AND ar.organization_id = :orgId`, { orgId: organization_id })
|
|
120
120
|
.where('a.organization_id = :orgId', { orgId: organization_id })
|
|
121
121
|
.andWhere('a.id::text IN (:...actionIds)', { actionIds })
|
|
@@ -62,14 +62,14 @@ let StageRepository = class StageRepository {
|
|
|
62
62
|
if (!stageGroup) {
|
|
63
63
|
return [];
|
|
64
64
|
}
|
|
65
|
-
const rows = await this.dataSource.query(`
|
|
66
|
-
SELECT
|
|
67
|
-
g.id as stage_group_id, g.name as stage_group_name, g.workflow_id,
|
|
68
|
-
s.*
|
|
69
|
-
FROM frm_wf_stage_group g
|
|
70
|
-
INNER JOIN frm_wf_stage s ON s.stage_group_id = g.id
|
|
71
|
-
WHERE g.workflow_id = $1 AND g.enterprise_id = $2 AND g.id = $3
|
|
72
|
-
ORDER BY g.id, s.id
|
|
65
|
+
const rows = await this.dataSource.query(`
|
|
66
|
+
SELECT
|
|
67
|
+
g.id as stage_group_id, g.name as stage_group_name, g.workflow_id,
|
|
68
|
+
s.*
|
|
69
|
+
FROM frm_wf_stage_group g
|
|
70
|
+
INNER JOIN frm_wf_stage s ON s.stage_group_id = g.id
|
|
71
|
+
WHERE g.workflow_id = $1 AND g.enterprise_id = $2 AND g.id = $3
|
|
72
|
+
ORDER BY g.id, s.id
|
|
73
73
|
`, [stageGroup.workflow_id, enterprise_id, stage_group_id]);
|
|
74
74
|
if (!rows || rows.length === 0) {
|
|
75
75
|
return [];
|
|
@@ -108,8 +108,8 @@ let ActionTemplateMappingService = class ActionTemplateMappingService extends en
|
|
|
108
108
|
'ct.name AS label',
|
|
109
109
|
'ct.id AS id',
|
|
110
110
|
])
|
|
111
|
-
.innerJoin('frm_list_master_items', 'fmi', `fmi.id = ct.status::bigint
|
|
112
|
-
AND fmi.code = 'STATUS_ACTIVE'
|
|
111
|
+
.innerJoin('frm_list_master_items', 'fmi', `fmi.id = ct.status::bigint
|
|
112
|
+
AND fmi.code = 'STATUS_ACTIVE'
|
|
113
113
|
AND fmi.enterprise_id::text = :entId`, { entId: String(loggedInUser.enterprise_id) })
|
|
114
114
|
.where('ct.code IN (:...codes)', { codes: templateCodes })
|
|
115
115
|
.andWhere('ct.mode::text = :mode', { mode: String(mode) })
|
|
@@ -165,11 +165,11 @@ let ActionService = class ActionService extends entity_service_impl_service_1.En
|
|
|
165
165
|
await this.actionTemplateMappingRepository
|
|
166
166
|
.createQueryBuilder()
|
|
167
167
|
.delete()
|
|
168
|
-
.where(`stg_act_mapping_id IN (
|
|
169
|
-
SELECT sam.id
|
|
170
|
-
FROM frm_wf_stage_action_mapping sam
|
|
171
|
-
WHERE sam.action_id = :actionId
|
|
172
|
-
AND sam.entity_type = 'WFSA'
|
|
168
|
+
.where(`stg_act_mapping_id IN (
|
|
169
|
+
SELECT sam.id
|
|
170
|
+
FROM frm_wf_stage_action_mapping sam
|
|
171
|
+
WHERE sam.action_id = :actionId
|
|
172
|
+
AND sam.entity_type = 'WFSA'
|
|
173
173
|
)`)
|
|
174
174
|
.setParameter('actionId', id)
|
|
175
175
|
.execute();
|
|
@@ -29,8 +29,8 @@ let EntityModificationService = class EntityModificationService extends entity_s
|
|
|
29
29
|
throw new common_1.NotFoundException('Entity metadata not found in frm_entity_master');
|
|
30
30
|
}
|
|
31
31
|
const tableName = entityMeta.db_table_name;
|
|
32
|
-
const [entityRow] = await this.entityManager.query(`
|
|
33
|
-
SELECT * FROM ${tableName} WHERE id = $1
|
|
32
|
+
const [entityRow] = await this.entityManager.query(`
|
|
33
|
+
SELECT * FROM ${tableName} WHERE id = $1
|
|
34
34
|
`, [mapped_entity_id]);
|
|
35
35
|
if (!entityRow) {
|
|
36
36
|
throw new common_1.NotFoundException(`No record found in ${tableName} with ID ${mapped_entity_id}`);
|