@neuralinnovations/dataisland-sdk 0.0.1-dev6 → 0.0.1-dev60
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/LICENSE +201 -0
- package/README.md +232 -3
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/package.json +103 -0
- package/dist/src/appBuilder.d.ts +44 -0
- package/dist/src/appBuilder.d.ts.map +1 -0
- package/dist/src/appBuilder.js +10 -0
- package/dist/src/appBuilder.js.map +1 -0
- package/dist/src/commands/deleteUserFullCommandHandler.d.ts +7 -0
- package/dist/src/commands/deleteUserFullCommandHandler.d.ts.map +1 -0
- package/dist/src/commands/deleteUserFullCommandHandler.js +21 -0
- package/dist/src/commands/deleteUserFullCommandHandler.js.map +1 -0
- package/dist/src/commands/startCommandHandler.d.ts +7 -0
- package/dist/src/commands/startCommandHandler.d.ts.map +1 -0
- package/dist/src/commands/startCommandHandler.js +30 -0
- package/dist/src/commands/startCommandHandler.js.map +1 -0
- package/dist/src/context.d.ts +24 -0
- package/dist/src/context.d.ts.map +1 -0
- package/dist/src/context.js +31 -0
- package/dist/src/context.js.map +1 -0
- package/dist/src/credentials.d.ts +33 -0
- package/dist/src/credentials.d.ts.map +1 -0
- package/dist/src/credentials.js +87 -0
- package/dist/src/credentials.js.map +1 -0
- package/dist/src/dataIslandApp.d.ts +55 -0
- package/dist/src/dataIslandApp.d.ts.map +1 -0
- package/dist/src/dataIslandApp.js +10 -0
- package/dist/src/dataIslandApp.js.map +1 -0
- package/dist/src/disposable.d.ts +84 -0
- package/dist/src/disposable.d.ts.map +1 -0
- package/dist/src/disposable.js +147 -0
- package/dist/src/disposable.js.map +1 -0
- package/dist/src/dto/accessGroupResponse.d.ts +30 -0
- package/dist/src/dto/accessGroupResponse.d.ts.map +1 -0
- package/dist/src/dto/accessGroupResponse.js +3 -0
- package/dist/src/dto/accessGroupResponse.js.map +1 -0
- package/dist/src/dto/acquiringResponse.d.ts +46 -0
- package/dist/src/dto/acquiringResponse.d.ts.map +1 -0
- package/dist/src/dto/acquiringResponse.js +11 -0
- package/dist/src/dto/acquiringResponse.js.map +1 -0
- package/dist/src/dto/badRequestResponse.d.ts +6 -0
- package/dist/src/dto/badRequestResponse.d.ts.map +1 -0
- package/dist/src/dto/badRequestResponse.js +3 -0
- package/dist/src/dto/badRequestResponse.js.map +1 -0
- package/dist/src/dto/chatResponse.d.ts +84 -0
- package/dist/src/dto/chatResponse.d.ts.map +1 -0
- package/dist/src/dto/chatResponse.js +45 -0
- package/dist/src/dto/chatResponse.js.map +1 -0
- package/dist/src/dto/limitsResponse.d.ts +29 -0
- package/dist/src/dto/limitsResponse.d.ts.map +1 -0
- package/dist/src/dto/limitsResponse.js +13 -0
- package/dist/src/dto/limitsResponse.js.map +1 -0
- package/dist/src/dto/quizResponse.d.ts +11 -0
- package/dist/src/dto/quizResponse.d.ts.map +1 -0
- package/dist/src/dto/quizResponse.js +3 -0
- package/dist/src/dto/quizResponse.js.map +1 -0
- package/dist/src/dto/statisticsResponse.d.ts +11 -0
- package/dist/src/dto/statisticsResponse.d.ts.map +1 -0
- package/dist/src/dto/statisticsResponse.js +3 -0
- package/dist/src/dto/statisticsResponse.js.map +1 -0
- package/dist/src/dto/userInfoResponse.d.ts +91 -0
- package/dist/src/dto/userInfoResponse.d.ts.map +1 -0
- package/dist/src/dto/userInfoResponse.js +3 -0
- package/dist/src/dto/userInfoResponse.js.map +1 -0
- package/dist/src/dto/workspacesResponse.d.ts +51 -0
- package/dist/src/dto/workspacesResponse.d.ts.map +1 -0
- package/dist/src/dto/workspacesResponse.js +11 -0
- package/dist/src/dto/workspacesResponse.js.map +1 -0
- package/dist/src/events.d.ts +17 -0
- package/dist/src/events.d.ts.map +1 -0
- package/dist/src/events.js +52 -0
- package/dist/src/events.js.map +1 -0
- package/dist/src/index.d.ts +73 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +122 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/internal/app.impl.d.ts +30 -0
- package/dist/src/internal/app.impl.d.ts.map +1 -0
- package/dist/src/internal/app.impl.js +180 -0
- package/dist/src/internal/app.impl.js.map +1 -0
- package/dist/src/internal/appBuilder.impl.d.ts +27 -0
- package/dist/src/internal/appBuilder.impl.d.ts.map +1 -0
- package/dist/src/internal/appBuilder.impl.js +71 -0
- package/dist/src/internal/appBuilder.impl.js.map +1 -0
- package/dist/src/internal/createApp.impl.d.ts +4 -0
- package/dist/src/internal/createApp.impl.d.ts.map +1 -0
- package/dist/src/internal/createApp.impl.js +11 -0
- package/dist/src/internal/createApp.impl.js.map +1 -0
- package/dist/src/internal/registry.d.ts +66 -0
- package/dist/src/internal/registry.d.ts.map +1 -0
- package/dist/src/internal/registry.js +114 -0
- package/dist/src/internal/registry.js.map +1 -0
- package/dist/src/middleware.d.ts +6 -0
- package/dist/src/middleware.d.ts.map +1 -0
- package/dist/src/middleware.js +3 -0
- package/dist/src/middleware.js.map +1 -0
- package/dist/src/services/acquiringService.d.ts +9 -0
- package/dist/src/services/acquiringService.d.ts.map +1 -0
- package/dist/src/services/acquiringService.js +19 -0
- package/dist/src/services/acquiringService.js.map +1 -0
- package/dist/src/services/anonymousService.d.ts +8 -0
- package/dist/src/services/anonymousService.d.ts.map +1 -0
- package/dist/src/services/anonymousService.js +41 -0
- package/dist/src/services/anonymousService.js.map +1 -0
- package/dist/src/services/commandService.d.ts +18 -0
- package/dist/src/services/commandService.d.ts.map +1 -0
- package/dist/src/services/commandService.js +40 -0
- package/dist/src/services/commandService.js.map +1 -0
- package/dist/src/services/cookieService.d.ts +7 -0
- package/dist/src/services/cookieService.d.ts.map +1 -0
- package/dist/src/services/cookieService.js +18 -0
- package/dist/src/services/cookieService.js.map +1 -0
- package/dist/src/services/credentialService.d.ts +9 -0
- package/dist/src/services/credentialService.d.ts.map +1 -0
- package/dist/src/services/credentialService.js +26 -0
- package/dist/src/services/credentialService.js.map +1 -0
- package/dist/src/services/httpMethod.d.ts +2 -0
- package/dist/src/services/httpMethod.d.ts.map +1 -0
- package/dist/src/services/httpMethod.js +3 -0
- package/dist/src/services/httpMethod.js.map +1 -0
- package/dist/src/services/middlewareService.d.ts +10 -0
- package/dist/src/services/middlewareService.d.ts.map +1 -0
- package/dist/src/services/middlewareService.js +34 -0
- package/dist/src/services/middlewareService.js.map +1 -0
- package/dist/src/services/organizationService.d.ts +10 -0
- package/dist/src/services/organizationService.d.ts.map +1 -0
- package/dist/src/services/organizationService.js +19 -0
- package/dist/src/services/organizationService.js.map +1 -0
- package/dist/src/services/requestBuilder.d.ts +17 -0
- package/dist/src/services/requestBuilder.d.ts.map +1 -0
- package/dist/src/services/requestBuilder.js +105 -0
- package/dist/src/services/requestBuilder.js.map +1 -0
- package/dist/src/services/responseUtils.d.ts +8 -0
- package/dist/src/services/responseUtils.d.ts.map +1 -0
- package/dist/src/services/responseUtils.js +40 -0
- package/dist/src/services/responseUtils.js.map +1 -0
- package/dist/src/services/rpcService.d.ts +77 -0
- package/dist/src/services/rpcService.d.ts.map +1 -0
- package/dist/src/services/rpcService.js +125 -0
- package/dist/src/services/rpcService.js.map +1 -0
- package/dist/src/services/service.d.ts +21 -0
- package/dist/src/services/service.d.ts.map +1 -0
- package/dist/src/services/service.js +41 -0
- package/dist/src/services/service.js.map +1 -0
- package/dist/src/services/userProfileService.d.ts +10 -0
- package/dist/src/services/userProfileService.d.ts.map +1 -0
- package/dist/src/services/userProfileService.js +59 -0
- package/dist/src/services/userProfileService.js.map +1 -0
- package/dist/src/storages/acquirings/acquiring.d.ts +41 -0
- package/dist/src/storages/acquirings/acquiring.d.ts.map +1 -0
- package/dist/src/storages/acquirings/acquiring.impl.d.ts +20 -0
- package/dist/src/storages/acquirings/acquiring.impl.d.ts.map +1 -0
- package/dist/src/storages/acquirings/acquiring.impl.js +92 -0
- package/dist/src/storages/acquirings/acquiring.impl.js.map +1 -0
- package/dist/src/storages/acquirings/acquiring.js +10 -0
- package/dist/src/storages/acquirings/acquiring.js.map +1 -0
- package/dist/src/storages/chats/answer.d.ts +41 -0
- package/dist/src/storages/chats/answer.d.ts.map +1 -0
- package/dist/src/storages/chats/answer.impl.d.ts +29 -0
- package/dist/src/storages/chats/answer.impl.d.ts.map +1 -0
- package/dist/src/storages/chats/answer.impl.js +116 -0
- package/dist/src/storages/chats/answer.impl.js.map +1 -0
- package/dist/src/storages/chats/answer.js +15 -0
- package/dist/src/storages/chats/answer.js.map +1 -0
- package/dist/src/storages/chats/chat.d.ts +51 -0
- package/dist/src/storages/chats/chat.d.ts.map +1 -0
- package/dist/src/storages/chats/chat.impl.d.ts +27 -0
- package/dist/src/storages/chats/chat.impl.d.ts.map +1 -0
- package/dist/src/storages/chats/chat.impl.js +93 -0
- package/dist/src/storages/chats/chat.impl.js.map +1 -0
- package/dist/src/storages/chats/chat.js +12 -0
- package/dist/src/storages/chats/chat.js.map +1 -0
- package/dist/src/storages/chats/chats.d.ts +51 -0
- package/dist/src/storages/chats/chats.d.ts.map +1 -0
- package/dist/src/storages/chats/chats.impl.d.ts +20 -0
- package/dist/src/storages/chats/chats.impl.d.ts.map +1 -0
- package/dist/src/storages/chats/chats.impl.js +184 -0
- package/dist/src/storages/chats/chats.impl.js.map +1 -0
- package/dist/src/storages/chats/chats.js +16 -0
- package/dist/src/storages/chats/chats.js.map +1 -0
- package/dist/src/storages/files/file.d.ts +59 -0
- package/dist/src/storages/files/file.d.ts.map +1 -0
- package/dist/src/storages/files/file.impl.d.ts +28 -0
- package/dist/src/storages/files/file.impl.d.ts.map +1 -0
- package/dist/src/storages/files/file.impl.js +127 -0
- package/dist/src/storages/files/file.impl.js.map +1 -0
- package/dist/src/storages/files/file.js +17 -0
- package/dist/src/storages/files/file.js.map +1 -0
- package/dist/src/storages/files/files.d.ts +39 -0
- package/dist/src/storages/files/files.d.ts.map +1 -0
- package/dist/src/storages/files/files.impl.d.ts +24 -0
- package/dist/src/storages/files/files.impl.d.ts.map +1 -0
- package/dist/src/storages/files/files.impl.js +168 -0
- package/dist/src/storages/files/files.impl.js.map +1 -0
- package/dist/src/storages/files/files.js +20 -0
- package/dist/src/storages/files/files.js.map +1 -0
- package/dist/src/storages/files/filesPage.d.ts +28 -0
- package/dist/src/storages/files/filesPage.d.ts.map +1 -0
- package/dist/src/storages/files/filesPage.impl.d.ts +15 -0
- package/dist/src/storages/files/filesPage.impl.d.ts.map +1 -0
- package/dist/src/storages/files/filesPage.impl.js +38 -0
- package/dist/src/storages/files/filesPage.impl.js.map +1 -0
- package/dist/src/storages/files/filesPage.js +10 -0
- package/dist/src/storages/files/filesPage.js.map +1 -0
- package/dist/src/storages/groups/group.d.ts +63 -0
- package/dist/src/storages/groups/group.d.ts.map +1 -0
- package/dist/src/storages/groups/group.impl.d.ts +38 -0
- package/dist/src/storages/groups/group.impl.d.ts.map +1 -0
- package/dist/src/storages/groups/group.impl.js +210 -0
- package/dist/src/storages/groups/group.impl.js.map +1 -0
- package/dist/src/storages/groups/group.js +15 -0
- package/dist/src/storages/groups/group.js.map +1 -0
- package/dist/src/storages/groups/groups.d.ts +43 -0
- package/dist/src/storages/groups/groups.d.ts.map +1 -0
- package/dist/src/storages/groups/groups.impl.d.ts +31 -0
- package/dist/src/storages/groups/groups.impl.d.ts.map +1 -0
- package/dist/src/storages/groups/groups.impl.js +136 -0
- package/dist/src/storages/groups/groups.impl.js.map +1 -0
- package/dist/src/storages/groups/groups.js +20 -0
- package/dist/src/storages/groups/groups.js.map +1 -0
- package/dist/src/storages/organizations/organization.d.ts +103 -0
- package/dist/src/storages/organizations/organization.d.ts.map +1 -0
- package/dist/src/storages/organizations/organization.impl.d.ts +44 -0
- package/dist/src/storages/organizations/organization.impl.d.ts.map +1 -0
- package/dist/src/storages/organizations/organization.impl.js +255 -0
- package/dist/src/storages/organizations/organization.impl.js.map +1 -0
- package/dist/src/storages/organizations/organization.js +18 -0
- package/dist/src/storages/organizations/organization.js.map +1 -0
- package/dist/src/storages/organizations/organizations.d.ts +51 -0
- package/dist/src/storages/organizations/organizations.d.ts.map +1 -0
- package/dist/src/storages/organizations/organizations.impl.d.ts +39 -0
- package/dist/src/storages/organizations/organizations.impl.d.ts.map +1 -0
- package/dist/src/storages/organizations/organizations.impl.js +173 -0
- package/dist/src/storages/organizations/organizations.impl.js.map +1 -0
- package/dist/src/storages/organizations/organizations.js +20 -0
- package/dist/src/storages/organizations/organizations.js.map +1 -0
- package/dist/src/storages/user/userProfile.d.ts +59 -0
- package/dist/src/storages/user/userProfile.d.ts.map +1 -0
- package/dist/src/storages/user/userProfile.impl.d.ts +22 -0
- package/dist/src/storages/user/userProfile.impl.d.ts.map +1 -0
- package/dist/src/storages/user/userProfile.impl.js +118 -0
- package/dist/src/storages/user/userProfile.impl.js.map +1 -0
- package/dist/src/storages/user/userProfile.js +12 -0
- package/dist/src/storages/user/userProfile.js.map +1 -0
- package/dist/src/storages/workspaces/workspace.d.ts +44 -0
- package/dist/src/storages/workspaces/workspace.d.ts.map +1 -0
- package/dist/src/storages/workspaces/workspace.impl.d.ts +23 -0
- package/dist/src/storages/workspaces/workspace.impl.d.ts.map +1 -0
- package/dist/src/storages/workspaces/workspace.impl.js +98 -0
- package/dist/src/storages/workspaces/workspace.impl.js.map +1 -0
- package/dist/src/storages/workspaces/workspace.js +18 -0
- package/dist/src/storages/workspaces/workspace.js.map +1 -0
- package/dist/src/storages/workspaces/workspaces.d.ts +47 -0
- package/dist/src/storages/workspaces/workspaces.d.ts.map +1 -0
- package/dist/src/storages/workspaces/workspaces.impl.d.ts +33 -0
- package/dist/src/storages/workspaces/workspaces.impl.d.ts.map +1 -0
- package/dist/src/storages/workspaces/workspaces.impl.js +153 -0
- package/dist/src/storages/workspaces/workspaces.impl.js.map +1 -0
- package/dist/src/storages/workspaces/workspaces.js +19 -0
- package/dist/src/storages/workspaces/workspaces.js.map +1 -0
- package/dist/src/unitTest.d.ts +12 -0
- package/dist/src/unitTest.d.ts.map +1 -0
- package/dist/src/unitTest.js +44 -0
- package/dist/src/unitTest.js.map +1 -0
- package/dist/src/utils/browserUtils.d.ts +4 -0
- package/dist/src/utils/browserUtils.d.ts.map +1 -0
- package/dist/src/utils/browserUtils.js +64 -0
- package/dist/src/utils/browserUtils.js.map +1 -0
- package/dist/src/utils/request.d.ts +6 -0
- package/dist/src/utils/request.d.ts.map +1 -0
- package/dist/src/utils/request.js +3 -0
- package/dist/src/utils/request.js.map +1 -0
- package/dist/src/utils/utils.d.ts +3 -0
- package/dist/src/utils/utils.d.ts.map +1 -0
- package/dist/src/utils/utils.js +13 -0
- package/dist/src/utils/utils.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +46 -5
- package/src/commands/deleteUserFullCommandHandler.ts +19 -0
- package/src/commands/startCommandHandler.ts +19 -5
- package/src/context.ts +4 -2
- package/src/credentials.ts +22 -0
- package/src/dataIslandApp.ts +8 -2
- package/src/disposable.ts +18 -5
- package/src/dto/accessGroupResponse.ts +19 -16
- package/src/dto/acquiringResponse.ts +54 -0
- package/src/dto/badRequestResponse.ts +6 -0
- package/src/dto/chatResponse.ts +60 -54
- package/src/dto/limitsResponse.ts +32 -0
- package/src/dto/quizResponse.ts +12 -0
- package/src/dto/statisticsResponse.ts +12 -0
- package/src/dto/userInfoResponse.ts +63 -2
- package/src/dto/workspacesResponse.ts +17 -3
- package/src/index.ts +57 -16
- package/src/internal/app.impl.ts +54 -12
- package/src/internal/registry.ts +54 -6
- package/src/middleware.ts +2 -0
- package/src/services/acquiringService.ts +21 -0
- package/src/services/anonymousService.ts +43 -0
- package/src/services/commandService.ts +4 -2
- package/src/services/cookieService.ts +16 -0
- package/src/services/httpMethod.ts +1 -0
- package/src/services/middlewareService.ts +1 -0
- package/src/services/organizationService.ts +2 -2
- package/src/services/requestBuilder.ts +10 -8
- package/src/services/responseUtils.ts +12 -0
- package/src/services/rpcService.ts +1 -0
- package/src/services/userProfileService.ts +36 -4
- package/src/storages/acquirings/acquiring.impl.ts +132 -0
- package/src/storages/acquirings/acquiring.ts +54 -0
- package/src/storages/chats/answer.impl.ts +160 -0
- package/src/storages/chats/answer.ts +53 -0
- package/src/storages/chats/chat.impl.ts +115 -0
- package/src/storages/chats/chat.ts +65 -0
- package/src/storages/chats/chats.impl.ts +255 -0
- package/src/storages/chats/chats.ts +60 -0
- package/src/storages/files/file.impl.ts +159 -0
- package/src/storages/files/file.ts +74 -0
- package/src/storages/{files.impl.ts → files/files.impl.ts} +67 -46
- package/src/storages/{files.ts → files/files.ts} +14 -7
- package/src/storages/files/filesPage.impl.ts +37 -0
- package/src/storages/{filesPage.ts → files/filesPage.ts} +6 -0
- package/src/storages/groups/group.impl.ts +276 -0
- package/src/storages/groups/group.ts +73 -0
- package/src/storages/groups/groups.impl.ts +180 -0
- package/src/storages/groups/groups.ts +50 -0
- package/src/storages/organizations/organization.impl.ts +387 -0
- package/src/storages/organizations/organization.ts +127 -0
- package/src/storages/{organizations.impl.ts → organizations/organizations.impl.ts} +55 -13
- package/src/storages/{organizations.ts → organizations/organizations.ts} +7 -1
- package/src/storages/user/userProfile.impl.ts +140 -0
- package/src/storages/user/userProfile.ts +75 -0
- package/src/storages/{workspace.impl.ts → workspaces/workspace.impl.ts} +27 -7
- package/src/storages/{workspace.ts → workspaces/workspace.ts} +8 -3
- package/src/storages/{workspaces.impl.ts → workspaces/workspaces.impl.ts} +29 -32
- package/src/storages/{workspaces.ts → workspaces/workspaces.ts} +6 -2
- package/src/unitTest.ts +3 -3
- package/src/utils/browserUtils.ts +68 -0
- package/src/utils/request.ts +6 -0
- package/src/utils/utils.ts +8 -0
- package/.browserslistrc +0 -5
- package/.editorconfig +0 -25
- package/.eslintrc.json +0 -44
- package/.github/workflows/publish-npm.yml +0 -28
- package/.prettierignore +0 -1
- package/.prettierrc +0 -11
- package/.yarnrc +0 -2
- package/babel.config.js +0 -6
- package/jest.config.ts +0 -199
- package/jest.setup.ts +0 -2
- package/src/storages/chat.ts +0 -21
- package/src/storages/chats.ts +0 -17
- package/src/storages/file.impl.ts +0 -69
- package/src/storages/file.ts +0 -28
- package/src/storages/groups.impl.ts +0 -337
- package/src/storages/groups.ts +0 -43
- package/src/storages/organization.impl.ts +0 -68
- package/src/storages/organization.ts +0 -33
- package/src/storages/userProfile.impl.ts +0 -56
- package/src/storages/userProfile.ts +0 -42
- package/test/commands.test.ts +0 -24
- package/test/data/test_file.pdf +0 -0
- package/test/disposable.test.ts +0 -39
- package/test/events.test.ts +0 -151
- package/test/files.test.ts +0 -52
- package/test/index.test.ts +0 -122
- package/test/organization.test.ts +0 -57
- package/test/registry.test.ts +0 -44
- package/test/services.test.ts +0 -56
- package/test/setup.ts +0 -54
- package/test/unitTest.test.ts +0 -21
- package/test/workspace.test.ts +0 -71
- package/tsconfig.json +0 -31
package/src/internal/app.impl.ts
CHANGED
@@ -7,7 +7,11 @@ import { DisposableContainer, type Lifetime } from "../disposable"
|
|
7
7
|
import { type Service, ServiceContext } from "../services/service"
|
8
8
|
import { CredentialService } from "../services/credentialService"
|
9
9
|
import { MiddlewareService } from "../services/middlewareService"
|
10
|
-
import {
|
10
|
+
import {
|
11
|
+
DefaultCredential,
|
12
|
+
type CredentialBase,
|
13
|
+
AnonymousCredential
|
14
|
+
} from "../credentials"
|
11
15
|
import { DataIslandApp } from "../dataIslandApp"
|
12
16
|
import { RpcService } from "../services/rpcService"
|
13
17
|
import { CommandService } from "../services/commandService"
|
@@ -17,9 +21,17 @@ import {
|
|
17
21
|
} from "../commands/startCommandHandler"
|
18
22
|
import { UserProfileService } from "../services/userProfileService"
|
19
23
|
import { OrganizationService } from "../services/organizationService"
|
20
|
-
import { Organizations } from "../storages/organizations"
|
21
|
-
import { UserProfile } from "../storages/userProfile"
|
24
|
+
import { Organizations } from "../storages/organizations/organizations"
|
25
|
+
import { UserProfile } from "../storages/user/userProfile"
|
22
26
|
import { isUnitTest, UnitTest } from "../unitTest"
|
27
|
+
import {
|
28
|
+
DeleteUserFullCommand,
|
29
|
+
DeleteUserFullCommandHandler
|
30
|
+
} from "../commands/deleteUserFullCommandHandler"
|
31
|
+
import { CookieService } from "../services/cookieService"
|
32
|
+
import { AnonymousService } from "../services/anonymousService"
|
33
|
+
import { Acquiring } from "../storages/acquirings/acquiring"
|
34
|
+
import { AcquiringService } from "../services/acquiringService"
|
23
35
|
|
24
36
|
export class DataIslandAppImpl extends DataIslandApp {
|
25
37
|
readonly name: string
|
@@ -34,7 +46,7 @@ export class DataIslandAppImpl extends DataIslandApp {
|
|
34
46
|
this.name = name
|
35
47
|
this._registry = new Registry()
|
36
48
|
this._disposable = new DisposableContainer()
|
37
|
-
this._context = new Context(this._registry, this._disposable.lifetime,
|
49
|
+
this._context = new Context(this._registry, this._disposable.lifetime, this)
|
38
50
|
|
39
51
|
this._registry.map(Context).asValue(this._context)
|
40
52
|
}
|
@@ -73,6 +85,10 @@ export class DataIslandAppImpl extends DataIslandApp {
|
|
73
85
|
return this.resolve(UserProfileService)?.userProfile as UserProfile
|
74
86
|
}
|
75
87
|
|
88
|
+
get acquiring(): Acquiring {
|
89
|
+
return (this.resolve(AcquiringService) as AcquiringService).acquiring
|
90
|
+
}
|
91
|
+
|
76
92
|
async initialize(
|
77
93
|
setup: ((builder: AppBuilder) => Promise<void>) | undefined
|
78
94
|
): Promise<void> {
|
@@ -83,8 +99,14 @@ export class DataIslandAppImpl extends DataIslandApp {
|
|
83
99
|
builder.registerCommand(StartCommand, (context: Context) => {
|
84
100
|
return new StartCommandHandler(context)
|
85
101
|
})
|
102
|
+
builder.registerCommand(DeleteUserFullCommand, (context: Context) => {
|
103
|
+
return new DeleteUserFullCommandHandler(context)
|
104
|
+
})
|
86
105
|
|
87
106
|
// register services
|
107
|
+
builder.registerService(CookieService, (context: ServiceContext) => {
|
108
|
+
return new CookieService(context)
|
109
|
+
})
|
88
110
|
builder.registerService(CredentialService, (context: ServiceContext) => {
|
89
111
|
return new CredentialService(context)
|
90
112
|
})
|
@@ -103,6 +125,12 @@ export class DataIslandAppImpl extends DataIslandApp {
|
|
103
125
|
builder.registerService(OrganizationService, (context: ServiceContext) => {
|
104
126
|
return new OrganizationService(context)
|
105
127
|
})
|
128
|
+
builder.registerService(AnonymousService, (context: ServiceContext) => {
|
129
|
+
return new AnonymousService(context)
|
130
|
+
})
|
131
|
+
builder.registerService(AcquiringService, (context: ServiceContext) => {
|
132
|
+
return new AcquiringService(context)
|
133
|
+
})
|
106
134
|
|
107
135
|
// call customer setup
|
108
136
|
if (setup !== undefined) {
|
@@ -123,10 +151,10 @@ export class DataIslandAppImpl extends DataIslandApp {
|
|
123
151
|
this._context,
|
124
152
|
this._disposable.defineNested()
|
125
153
|
)
|
154
|
+
const serviceInstance = serviceFactory[1](serviceContext)
|
126
155
|
serviceContext.lifetime.addCallback(() => {
|
127
|
-
serviceContext.onUnregister()
|
156
|
+
serviceContext.onUnregister.call(serviceInstance)
|
128
157
|
}, serviceContext)
|
129
|
-
const serviceInstance = serviceFactory[1](serviceContext)
|
130
158
|
services.push([serviceContext, serviceInstance])
|
131
159
|
this._registry.map(serviceFactory[0]).asValue(serviceInstance)
|
132
160
|
})
|
@@ -139,16 +167,14 @@ export class DataIslandAppImpl extends DataIslandApp {
|
|
139
167
|
this.resolve(CommandService)?.register(command[0], command[1])
|
140
168
|
})
|
141
169
|
|
142
|
-
this.credential = builder.credential
|
143
|
-
|
144
170
|
//-------------------------------------------------------------------------
|
145
171
|
// register services
|
146
172
|
//-------------------------------------------------------------------------
|
147
173
|
const waitList: Array<Promise<void>> = []
|
148
174
|
// call onRegister service's callback
|
149
|
-
services.forEach(([serviceContext]) => {
|
175
|
+
services.forEach(([serviceContext, service]) => {
|
150
176
|
if (typeof serviceContext.onRegister === "function") {
|
151
|
-
waitList.push(serviceContext.onRegister())
|
177
|
+
waitList.push(serviceContext.onRegister.call(service))
|
152
178
|
}
|
153
179
|
})
|
154
180
|
|
@@ -161,9 +187,9 @@ export class DataIslandAppImpl extends DataIslandApp {
|
|
161
187
|
//-------------------------------------------------------------------------
|
162
188
|
waitList.length = 0
|
163
189
|
// call onStart service's callback
|
164
|
-
services.forEach(([serviceContext]) => {
|
190
|
+
services.forEach(([serviceContext, service]) => {
|
165
191
|
if (typeof serviceContext.onStart === "function") {
|
166
|
-
waitList.push(serviceContext.onStart())
|
192
|
+
waitList.push(serviceContext.onStart.call(service))
|
167
193
|
}
|
168
194
|
})
|
169
195
|
|
@@ -171,6 +197,22 @@ export class DataIslandAppImpl extends DataIslandApp {
|
|
171
197
|
await Promise.all(waitList)
|
172
198
|
//-------------------------------------------------------------------------
|
173
199
|
|
200
|
+
// set credential
|
201
|
+
this.credential = builder.credential
|
202
|
+
|
203
|
+
// Check anonymous authorization
|
204
|
+
if (!isUnitTest(UnitTest.DO_NOT_START) && builder.credential instanceof DefaultCredential) {
|
205
|
+
const anonymous = this.resolve(AnonymousService)!
|
206
|
+
const {
|
207
|
+
token,
|
208
|
+
isValid
|
209
|
+
} = await anonymous.getToken()
|
210
|
+
|
211
|
+
if (isValid) {
|
212
|
+
this.credential = new AnonymousCredential(token)
|
213
|
+
}
|
214
|
+
}
|
215
|
+
|
174
216
|
// start app, execute start command
|
175
217
|
if (!isUnitTest(UnitTest.DO_NOT_START)) {
|
176
218
|
await this.context.execute(new StartCommand())
|
package/src/internal/registry.ts
CHANGED
@@ -1,9 +1,21 @@
|
|
1
|
+
/**
|
2
|
+
* Constructor type.
|
3
|
+
*/
|
1
4
|
export type Constructor<T> = new (...args: any[]) => T
|
2
5
|
|
6
|
+
/**
|
7
|
+
* Provider interface.
|
8
|
+
*/
|
3
9
|
abstract class Provider {
|
10
|
+
/**
|
11
|
+
* Provide method.
|
12
|
+
*/
|
4
13
|
abstract provide(): any | undefined
|
5
14
|
}
|
6
15
|
|
16
|
+
/**
|
17
|
+
* MethodProvider class.
|
18
|
+
*/
|
7
19
|
class MethodProvider<T> extends Provider {
|
8
20
|
private instance?: T
|
9
21
|
private provided: boolean = false
|
@@ -25,6 +37,9 @@ class MethodProvider<T> extends Provider {
|
|
25
37
|
}
|
26
38
|
}
|
27
39
|
|
40
|
+
/**
|
41
|
+
* ValueProvider class.
|
42
|
+
*/
|
28
43
|
class ValueProvider<T> extends Provider {
|
29
44
|
constructor(private readonly value: T | undefined) {
|
30
45
|
super()
|
@@ -35,44 +50,77 @@ class ValueProvider<T> extends Provider {
|
|
35
50
|
}
|
36
51
|
}
|
37
52
|
|
53
|
+
/**
|
54
|
+
* RegistryItem class.
|
55
|
+
*/
|
38
56
|
export class RegistryItem<T> {
|
39
57
|
constructor(
|
40
58
|
private readonly registry: Map<Constructor<any>, Provider>,
|
41
59
|
private readonly type: Constructor<T>
|
42
|
-
) {
|
60
|
+
) {
|
61
|
+
}
|
43
62
|
|
63
|
+
/**
|
64
|
+
* As value method.
|
65
|
+
* @param value
|
66
|
+
*/
|
44
67
|
asValue(value: T): void {
|
45
68
|
this.registry.set(this.type, new ValueProvider<T>(value))
|
46
69
|
}
|
47
70
|
|
71
|
+
/**
|
72
|
+
* As provider method.
|
73
|
+
* @param provider
|
74
|
+
* @param oneTime
|
75
|
+
*/
|
48
76
|
asProvider<T>(provider: () => T, oneTime: boolean = false): void {
|
49
77
|
this.registry.set(this.type, new MethodProvider<T>(provider, oneTime))
|
50
78
|
}
|
51
79
|
|
80
|
+
/**
|
81
|
+
* As factory method.
|
82
|
+
* @param provider
|
83
|
+
*/
|
52
84
|
asFactory<T>(provider: () => T): void {
|
53
85
|
this.registry.set(this.type, new MethodProvider<T>(provider, false))
|
54
86
|
}
|
55
87
|
|
88
|
+
/**
|
89
|
+
* As singleton method.
|
90
|
+
* @param provider
|
91
|
+
*/
|
56
92
|
asSingleton<T>(provider: () => T): void {
|
57
93
|
this.registry.set(this.type, new MethodProvider<T>(provider, true))
|
58
94
|
}
|
59
95
|
}
|
60
96
|
|
97
|
+
/**
|
98
|
+
* Registry class.
|
99
|
+
*/
|
61
100
|
export class Registry {
|
62
|
-
private readonly services: Map<Constructor<any>, Provider>
|
63
|
-
|
64
|
-
constructor() {
|
65
|
-
this.services = new Map()
|
66
|
-
}
|
101
|
+
private readonly services: Map<Constructor<any>, Provider> = new Map()
|
67
102
|
|
103
|
+
/**
|
104
|
+
* Map method.
|
105
|
+
* @param type
|
106
|
+
*/
|
68
107
|
map<T>(type: Constructor<T>): RegistryItem<T> {
|
69
108
|
return new RegistryItem<T>(this.services, type)
|
70
109
|
}
|
71
110
|
|
111
|
+
/**
|
112
|
+
* Set method.
|
113
|
+
* @param type
|
114
|
+
* @param provider
|
115
|
+
*/
|
72
116
|
set<T>(type: Constructor<T>, provider: Provider): void {
|
73
117
|
this.services.set(type, provider)
|
74
118
|
}
|
75
119
|
|
120
|
+
/**
|
121
|
+
* Get method.
|
122
|
+
* @param type
|
123
|
+
*/
|
76
124
|
get<T>(type: Constructor<T>): T | undefined {
|
77
125
|
const provider = this.services.get(type)
|
78
126
|
if (provider === undefined) {
|
package/src/middleware.ts
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
import { Service, ServiceContext } from "./service"
|
2
|
+
import { AcquiringImpl } from "../storages/acquirings/acquiring.impl"
|
3
|
+
import { Acquiring } from "../storages/acquirings/acquiring"
|
4
|
+
|
5
|
+
export class AcquiringService extends Service {
|
6
|
+
private readonly _acquiring: AcquiringImpl
|
7
|
+
|
8
|
+
constructor(serviceContext: ServiceContext) {
|
9
|
+
super(serviceContext)
|
10
|
+
|
11
|
+
this._acquiring = new AcquiringImpl(serviceContext.context)
|
12
|
+
}
|
13
|
+
|
14
|
+
initialize(): Promise<void> {
|
15
|
+
return this._acquiring.initialize()
|
16
|
+
}
|
17
|
+
|
18
|
+
get acquiring(): Acquiring {
|
19
|
+
return this._acquiring
|
20
|
+
}
|
21
|
+
}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
import { Service } from "./service"
|
2
|
+
import { CookieService } from "./cookieService"
|
3
|
+
import { createFingerprint } from "../utils/browserUtils"
|
4
|
+
import { RpcService } from "./rpcService"
|
5
|
+
import { ResponseUtils } from "./responseUtils"
|
6
|
+
|
7
|
+
export class AnonymousService extends Service {
|
8
|
+
|
9
|
+
async getToken(): Promise<{ token: string, isValid: boolean }> {
|
10
|
+
const cookie = this.resolve(CookieService)!
|
11
|
+
let token = cookie.anonymousToken
|
12
|
+
if (token === undefined || token === null || token.length === 0) {
|
13
|
+
const fingerprint = createFingerprint()
|
14
|
+
const response = await this.context
|
15
|
+
.resolve(RpcService)
|
16
|
+
?.requestBuilder("api/v1/Users/anonymous")
|
17
|
+
.sendPutJson({
|
18
|
+
info: {
|
19
|
+
fingerprint: JSON.stringify({
|
20
|
+
userAgent: fingerprint.get("userAgent"),
|
21
|
+
language: fingerprint.get("language"),
|
22
|
+
hardwareConcurrency: fingerprint.get("hardware_concurrency"),
|
23
|
+
cookieEnabled: fingerprint.get("cookie_enabled"),
|
24
|
+
pixelRatio: fingerprint.get("pixel_ratio")
|
25
|
+
})
|
26
|
+
}
|
27
|
+
})
|
28
|
+
|
29
|
+
if (ResponseUtils.isFail(response)) {
|
30
|
+
await ResponseUtils.throwError("Failed to create anonymous token", response)
|
31
|
+
}
|
32
|
+
|
33
|
+
token = (await response!.json() as { token: string }).token
|
34
|
+
|
35
|
+
cookie.anonymousToken = token!
|
36
|
+
}
|
37
|
+
|
38
|
+
return {
|
39
|
+
token: token!,
|
40
|
+
isValid: token !== undefined && token !== null && token.length > 0
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
@@ -3,7 +3,8 @@ import { Context } from "../context"
|
|
3
3
|
import { Constructor } from "../internal/registry"
|
4
4
|
|
5
5
|
export abstract class CommandHandler<T> {
|
6
|
-
constructor(protected readonly context: Context) {
|
6
|
+
constructor(protected readonly context: Context) {
|
7
|
+
}
|
7
8
|
|
8
9
|
resolve<T>(type: Constructor<T>): T | undefined {
|
9
10
|
return this.context.resolve<T>(type)
|
@@ -12,7 +13,8 @@ export abstract class CommandHandler<T> {
|
|
12
13
|
abstract execute(message: T): Promise<void>
|
13
14
|
}
|
14
15
|
|
15
|
-
export abstract class Command {
|
16
|
+
export abstract class Command {
|
17
|
+
}
|
16
18
|
|
17
19
|
export class CommandService extends Service {
|
18
20
|
private readonly _registry: Map<
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { Service } from "./service"
|
2
|
+
import { getCookie, setCookie } from "../utils/browserUtils"
|
3
|
+
|
4
|
+
export class CookieService extends Service {
|
5
|
+
get anonymousToken(): string | undefined {
|
6
|
+
return getCookie("anonymous-token")
|
7
|
+
}
|
8
|
+
|
9
|
+
get anonymousTokenIsValid(): boolean {
|
10
|
+
return this.anonymousToken !== undefined && this.anonymousToken !== null && this.anonymousToken.length > 0
|
11
|
+
}
|
12
|
+
|
13
|
+
set anonymousToken(value: string | undefined) {
|
14
|
+
setCookie("anonymous-token", value)
|
15
|
+
}
|
16
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export type HttpMethod = "POST" | "GET" | "PUT" | "DELETE" | "PATCH"
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { Service } from "./service"
|
2
2
|
import { type Middleware } from "../middleware"
|
3
3
|
import { type Disposable } from "../disposable"
|
4
|
+
import { Request, Response } from "../utils/request"
|
4
5
|
|
5
6
|
export class MiddlewareService extends Service {
|
6
7
|
private _middlewares: Middleware[] = []
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { Service } from "./service"
|
2
|
-
import { Organizations } from "../storages/organizations"
|
2
|
+
import { Organizations } from "../storages/organizations/organizations"
|
3
3
|
import { OrganizationDto, UserSettings } from "../dto/userInfoResponse"
|
4
|
-
import { OrganizationsImpl } from "../storages/organizations.impl"
|
4
|
+
import { OrganizationsImpl } from "../storages/organizations/organizations.impl"
|
5
5
|
|
6
6
|
export class OrganizationService extends Service {
|
7
7
|
private _impl?: OrganizationsImpl
|
@@ -1,17 +1,19 @@
|
|
1
|
+
// import { Request, Response, Headers, FormData } from "../utils/request"
|
2
|
+
|
1
3
|
export class RequestBuilder {
|
2
|
-
private readonly _headers:
|
4
|
+
private readonly _headers: Record<string, string>
|
3
5
|
private readonly _searchParams: URLSearchParams
|
4
6
|
|
5
7
|
constructor(
|
6
8
|
private readonly _url: URL,
|
7
9
|
private readonly _request: (req: Request) => Promise<Response>
|
8
10
|
) {
|
9
|
-
this._headers =
|
11
|
+
this._headers = {}
|
10
12
|
this._searchParams = new URLSearchParams()
|
11
13
|
}
|
12
14
|
|
13
15
|
public header(name: string, value: string): RequestBuilder {
|
14
|
-
this._headers
|
16
|
+
this._headers[name] = value
|
15
17
|
return this
|
16
18
|
}
|
17
19
|
|
@@ -23,11 +25,11 @@ export class RequestBuilder {
|
|
23
25
|
}
|
24
26
|
if (headers instanceof Headers) {
|
25
27
|
headers.forEach((value, name) => {
|
26
|
-
this._headers
|
28
|
+
this._headers[name] = value
|
27
29
|
})
|
28
30
|
} else {
|
29
31
|
Object.entries(headers).forEach(([name, value]) => {
|
30
|
-
this._headers
|
32
|
+
this._headers[name] = value
|
31
33
|
})
|
32
34
|
}
|
33
35
|
return this
|
@@ -58,7 +60,7 @@ export class RequestBuilder {
|
|
58
60
|
const req = new Request(url, {
|
59
61
|
method: "POST",
|
60
62
|
headers: this._headers,
|
61
|
-
body
|
63
|
+
body: body
|
62
64
|
})
|
63
65
|
|
64
66
|
// discard content type
|
@@ -73,7 +75,7 @@ export class RequestBuilder {
|
|
73
75
|
public async sendPostJson(body: object | null | undefined): Promise<Response> {
|
74
76
|
const url = this._url
|
75
77
|
url.search = this._searchParams.toString()
|
76
|
-
let json: string |
|
78
|
+
let json: string | undefined = undefined
|
77
79
|
if (body !== undefined && body !== null && typeof body === "object") {
|
78
80
|
json = JSON.stringify(body)
|
79
81
|
}
|
@@ -112,7 +114,7 @@ export class RequestBuilder {
|
|
112
114
|
public async sendPutJson(body: object | null | undefined): Promise<Response> {
|
113
115
|
const url = this._url
|
114
116
|
url.search = this._searchParams.toString()
|
115
|
-
let json: string |
|
117
|
+
let json: string | undefined = undefined
|
116
118
|
if (body !== undefined && body !== null && typeof body === "object") {
|
117
119
|
json = JSON.stringify(body)
|
118
120
|
}
|
@@ -1,3 +1,6 @@
|
|
1
|
+
import { BadRequest } from "../dto/badRequestResponse"
|
2
|
+
import { Response } from "../utils/request"
|
3
|
+
|
1
4
|
export class ResponseUtils {
|
2
5
|
public static isOk(response?: Response | null): boolean {
|
3
6
|
return response !== undefined && response !== null && response.ok
|
@@ -7,6 +10,15 @@ export class ResponseUtils {
|
|
7
10
|
return !ResponseUtils.isOk(response)
|
8
11
|
}
|
9
12
|
|
13
|
+
public static async isLimitReached(response?: Response | null): Promise<boolean> {
|
14
|
+
if (response?.status == 15){
|
15
|
+
if (((await response?.json()) as BadRequest).code == 15){
|
16
|
+
return true
|
17
|
+
}
|
18
|
+
}
|
19
|
+
return false
|
20
|
+
}
|
21
|
+
|
10
22
|
public static async throwError(
|
11
23
|
message: string,
|
12
24
|
response: Response | undefined | null
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { Service, type ServiceContext } from "./service"
|
2
2
|
import { MiddlewareService } from "./middlewareService"
|
3
3
|
import { RequestBuilder } from "./requestBuilder"
|
4
|
+
// import { Request, Response, Headers, fetch } from "../utils/request"
|
4
5
|
|
5
6
|
/**
|
6
7
|
* Options for the RpcService.
|
@@ -1,21 +1,36 @@
|
|
1
1
|
import { Service } from "./service"
|
2
2
|
import { RpcService } from "./rpcService"
|
3
|
-
import { UserProfile } from "../storages/userProfile"
|
3
|
+
import { UserProfile } from "../storages/user/userProfile"
|
4
4
|
import { UserInfoResponse } from "../dto/userInfoResponse"
|
5
5
|
import { OrganizationService } from "./organizationService"
|
6
|
-
import { UserProfileImpl } from "../storages/userProfile.impl"
|
6
|
+
import { UserProfileImpl } from "../storages/user/userProfile.impl"
|
7
7
|
import { ResponseUtils } from "./responseUtils"
|
8
|
+
import { OrganizationsEvent } from "../storages/organizations/organizations"
|
8
9
|
|
9
10
|
export class UserProfileService extends Service {
|
10
|
-
private readonly impl: UserProfileImpl = new UserProfileImpl()
|
11
|
+
private readonly impl: UserProfileImpl = new UserProfileImpl(this.context)
|
11
12
|
|
12
13
|
get userProfile(): UserProfile {
|
13
14
|
return this.impl
|
14
15
|
}
|
15
16
|
|
17
|
+
async merge(anonymous_token: string) {
|
18
|
+
const rpc = this.resolve(RpcService) as RpcService
|
19
|
+
const response = await rpc.requestBuilder("api/v1/Users/anonymous/merge")
|
20
|
+
.sendPostJson({
|
21
|
+
anonymousToken: anonymous_token
|
22
|
+
})
|
23
|
+
|
24
|
+
if (ResponseUtils.isFail(response)) {
|
25
|
+
await ResponseUtils.throwError("Failed to merge anonymous user", response)
|
26
|
+
}
|
27
|
+
|
28
|
+
await this.fetch()
|
29
|
+
}
|
30
|
+
|
16
31
|
async fetch() {
|
17
32
|
const rpc = this.resolve(RpcService) as RpcService
|
18
|
-
const response = await rpc.requestBuilder("api/
|
33
|
+
const response = await rpc.requestBuilder("api/v2/Users/self").sendGet()
|
19
34
|
if (ResponseUtils.isFail(response)) {
|
20
35
|
await ResponseUtils.throwError("Failed to fetch user profile", response)
|
21
36
|
}
|
@@ -34,5 +49,22 @@ export class UserProfileService extends Service {
|
|
34
49
|
content.organizations,
|
35
50
|
content.user.settings
|
36
51
|
)
|
52
|
+
|
53
|
+
organizationService.organizations.subscribe(async (event) => {
|
54
|
+
this.updateUserSettings(event.data.id)
|
55
|
+
}, OrganizationsEvent.CURRENT_CHANGED)
|
56
|
+
}
|
57
|
+
|
58
|
+
async updateUserSettings(activeOrgId?: string, activeWorkspaceId?: string): Promise<void>{
|
59
|
+
const rpc = this.resolve(RpcService) as RpcService
|
60
|
+
const response = await rpc.requestBuilder("api/v1/Users/settings").sendPutJson({
|
61
|
+
settings: {
|
62
|
+
activeOrganizationId: activeOrgId,
|
63
|
+
activeWorkspaceId: activeWorkspaceId
|
64
|
+
}
|
65
|
+
})
|
66
|
+
if (ResponseUtils.isFail(response)) {
|
67
|
+
await ResponseUtils.throwError("Failed to update user settings", response)
|
68
|
+
}
|
37
69
|
}
|
38
70
|
}
|
@@ -0,0 +1,132 @@
|
|
1
|
+
import { RpcService } from "../../services/rpcService"
|
2
|
+
import { ResponseUtils } from "../../services/responseUtils"
|
3
|
+
import {
|
4
|
+
AcquiringPlansResponse,
|
5
|
+
OrderResponse,
|
6
|
+
OrderData,
|
7
|
+
UserAcquiringPlan,
|
8
|
+
GetOrderStateResponse,
|
9
|
+
AcquiringPlan,
|
10
|
+
AcquiringSegmentData,
|
11
|
+
UnsubscribeResponse
|
12
|
+
} from "../../dto/acquiringResponse"
|
13
|
+
import { Acquiring } from "./acquiring"
|
14
|
+
import { Context } from "../../context"
|
15
|
+
|
16
|
+
export class AcquiringImpl implements Acquiring {
|
17
|
+
private _userPlan?: UserAcquiringPlan
|
18
|
+
private _plans?: AcquiringPlan[]
|
19
|
+
private _limitSegments?: AcquiringSegmentData[]
|
20
|
+
|
21
|
+
constructor(
|
22
|
+
private readonly context: Context) {
|
23
|
+
}
|
24
|
+
|
25
|
+
get userPlan(): UserAcquiringPlan {
|
26
|
+
return this._userPlan!
|
27
|
+
}
|
28
|
+
|
29
|
+
get plans(): AcquiringPlan[] {
|
30
|
+
return this._plans!
|
31
|
+
}
|
32
|
+
|
33
|
+
get limitSegments(): AcquiringSegmentData[] {
|
34
|
+
return this._limitSegments!
|
35
|
+
}
|
36
|
+
|
37
|
+
async initialize() {
|
38
|
+
const userPlanPromise = this.getUserPlan()
|
39
|
+
const plansPromise = this.getPlans()
|
40
|
+
const promises = [
|
41
|
+
userPlanPromise,
|
42
|
+
plansPromise
|
43
|
+
]
|
44
|
+
await Promise.all(promises)
|
45
|
+
|
46
|
+
this._userPlan = await userPlanPromise
|
47
|
+
const {
|
48
|
+
plans,
|
49
|
+
limitSegments
|
50
|
+
} = await plansPromise
|
51
|
+
this._plans = plans
|
52
|
+
this._limitSegments = limitSegments
|
53
|
+
}
|
54
|
+
|
55
|
+
async createOrder(key: string): Promise<OrderData> {
|
56
|
+
const rpc = this.context.resolve(RpcService) as RpcService
|
57
|
+
const response = await rpc.requestBuilder("api/v1/Acquiring/order")
|
58
|
+
.sendPostJson({
|
59
|
+
key: key
|
60
|
+
})
|
61
|
+
|
62
|
+
if (ResponseUtils.isFail(response)) {
|
63
|
+
await ResponseUtils.throwError("Failed to create order", response)
|
64
|
+
}
|
65
|
+
|
66
|
+
const order = (await response.json()) as OrderResponse
|
67
|
+
|
68
|
+
return order.data
|
69
|
+
}
|
70
|
+
|
71
|
+
async unsubscribe(): Promise<UnsubscribeResponse> {
|
72
|
+
const rpc = this.context.resolve(RpcService) as RpcService
|
73
|
+
const response = await rpc.requestBuilder("api/v1/Acquiring/unsubscribe").sendDelete()
|
74
|
+
|
75
|
+
if (ResponseUtils.isFail(response)) {
|
76
|
+
await ResponseUtils.throwError("Failed to unsubscribe", response)
|
77
|
+
}
|
78
|
+
|
79
|
+
const order = (await response.json()) as UnsubscribeResponse
|
80
|
+
|
81
|
+
return order
|
82
|
+
}
|
83
|
+
|
84
|
+
async getPlans(): Promise<AcquiringPlansResponse> {
|
85
|
+
const rpc = this.context.resolve(RpcService) as RpcService
|
86
|
+
const response = await rpc
|
87
|
+
.requestBuilder("api/v1/Acquiring/plans")
|
88
|
+
.sendGet()
|
89
|
+
|
90
|
+
if (ResponseUtils.isFail(response)) {
|
91
|
+
await ResponseUtils.throwError("Failed to get acquiring plans", response)
|
92
|
+
}
|
93
|
+
|
94
|
+
const content = (await response.json()) as AcquiringPlansResponse
|
95
|
+
this._plans = content.plans
|
96
|
+
this._limitSegments = content.limitSegments
|
97
|
+
|
98
|
+
return content
|
99
|
+
}
|
100
|
+
|
101
|
+
async getUserPlan(): Promise<UserAcquiringPlan> {
|
102
|
+
const rpc = this.context.resolve(RpcService) as RpcService
|
103
|
+
const response = await rpc
|
104
|
+
.requestBuilder("api/v1/Acquiring/user/subscription")
|
105
|
+
.sendGet()
|
106
|
+
|
107
|
+
if (ResponseUtils.isFail(response)) {
|
108
|
+
await ResponseUtils.throwError("Failed to get user subscription", response)
|
109
|
+
}
|
110
|
+
|
111
|
+
const content = (await response.json()) as UserAcquiringPlan
|
112
|
+
this._userPlan = content
|
113
|
+
|
114
|
+
return content
|
115
|
+
}
|
116
|
+
|
117
|
+
async getOrder(orderId: string): Promise<GetOrderStateResponse> {
|
118
|
+
const rpc = this.context.resolve(RpcService) as RpcService
|
119
|
+
const response = await rpc
|
120
|
+
.requestBuilder("api/v1/Acquiring/order/state")
|
121
|
+
.searchParam("orderId", orderId)
|
122
|
+
.sendGet()
|
123
|
+
|
124
|
+
if (ResponseUtils.isFail(response)) {
|
125
|
+
await ResponseUtils.throwError("Failed to get order", response)
|
126
|
+
}
|
127
|
+
|
128
|
+
const content = (await response.json()) as GetOrderStateResponse
|
129
|
+
|
130
|
+
return content
|
131
|
+
}
|
132
|
+
}
|