@neuralinnovations/dataisland-sdk 0.0.1-dev7 → 0.0.1-dev71
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 +204 -6
- 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 +39 -0
- package/dist/src/credentials.d.ts.map +1 -0
- package/dist/src/credentials.js +105 -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 +27 -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/apiKeyResponse.d.ts +19 -0
- package/dist/src/dto/apiKeyResponse.d.ts.map +1 -0
- package/dist/src/dto/apiKeyResponse.js +3 -0
- package/dist/src/dto/apiKeyResponse.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/invitesResponse.d.ts +21 -0
- package/dist/src/dto/invitesResponse.d.ts.map +1 -0
- package/dist/src/dto/invitesResponse.js +3 -0
- package/dist/src/dto/invitesResponse.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 +92 -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 +68 -0
- package/dist/src/dto/workspacesResponse.d.ts.map +1 -0
- package/dist/src/dto/workspacesResponse.js +21 -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 +75 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +124 -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 +19 -0
- package/dist/src/services/requestBuilder.d.ts.map +1 -0
- package/dist/src/services/requestBuilder.js +133 -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 +134 -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 +55 -0
- package/dist/src/storages/chats/chat.d.ts.map +1 -0
- package/dist/src/storages/chats/chat.impl.d.ts +28 -0
- package/dist/src/storages/chats/chat.impl.d.ts.map +1 -0
- package/dist/src/storages/chats/chat.impl.js +106 -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 +130 -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 +137 -0
- package/dist/src/storages/organizations/organization.d.ts.map +1 -0
- package/dist/src/storages/organizations/organization.impl.d.ts +55 -0
- package/dist/src/storages/organizations/organization.impl.d.ts.map +1 -0
- package/dist/src/storages/organizations/organization.impl.js +362 -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 +77 -0
- package/dist/src/storages/organizations/organizations.d.ts.map +1 -0
- package/dist/src/storages/organizations/organizations.impl.d.ts +45 -0
- package/dist/src/storages/organizations/organizations.impl.d.ts.map +1 -0
- package/dist/src/storages/organizations/organizations.impl.js +242 -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 +64 -0
- package/dist/src/storages/user/userProfile.d.ts.map +1 -0
- package/dist/src/storages/user/userProfile.impl.d.ts +24 -0
- package/dist/src/storages/user/userProfile.impl.d.ts.map +1 -0
- package/dist/src/storages/user/userProfile.impl.js +129 -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 +44 -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 +46 -0
- package/src/dataIslandApp.ts +8 -2
- package/src/disposable.ts +18 -5
- package/src/dto/accessGroupResponse.ts +17 -16
- package/src/dto/acquiringResponse.ts +54 -0
- package/src/dto/apiKeyResponse.ts +23 -0
- package/src/dto/badRequestResponse.ts +6 -0
- package/src/dto/chatResponse.ts +60 -54
- package/src/dto/invitesResponse.ts +25 -0
- 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 +64 -2
- package/src/dto/workspacesResponse.ts +38 -3
- package/src/index.ts +59 -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 +48 -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 +178 -0
- package/src/storages/chats/answer.ts +53 -0
- package/src/storages/chats/chat.impl.ts +139 -0
- package/src/storages/chats/chat.ts +70 -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 +162 -0
- package/src/storages/files/file.ts +74 -0
- package/src/storages/{files.impl.ts → files/files.impl.ts} +89 -67
- 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 +555 -0
- package/src/storages/organizations/organization.ts +168 -0
- package/src/storages/{organizations.impl.ts → organizations/organizations.impl.ts} +161 -12
- package/src/storages/organizations/organizations.ts +93 -0
- package/src/storages/user/userProfile.impl.ts +157 -0
- package/src/storages/user/userProfile.ts +81 -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 -41
- package/.prettierignore +0 -1
- package/.prettierrc +0 -11
- package/.yarnrc +0 -2
- package/babel.config.js +0 -6
- package/docs/.nojekyll +0 -1
- package/docs/classes/BasicCredential.md +0 -80
- package/docs/classes/BearerCredential.md +0 -72
- package/docs/classes/Chat.md +0 -69
- package/docs/classes/Chats.md +0 -90
- package/docs/classes/CredentialBase.md +0 -54
- package/docs/classes/DataIslandApp.md +0 -168
- package/docs/classes/DebugCredential.md +0 -72
- package/docs/classes/DefaultCredential.md +0 -56
- package/docs/classes/DisposableContainer.md +0 -177
- package/docs/classes/EventDispatcher.md +0 -109
- package/docs/classes/File.md +0 -79
- package/docs/classes/Files.md +0 -136
- package/docs/classes/FilesPage.md +0 -76
- package/docs/classes/Group.md +0 -191
- package/docs/classes/Groups.md +0 -130
- package/docs/classes/Lifetime.md +0 -108
- package/docs/classes/Organization.md +0 -89
- package/docs/classes/Organizations.md +0 -195
- package/docs/classes/UserProfile.md +0 -156
- package/docs/classes/Workspace.md +0 -165
- package/docs/classes/Workspaces.md +0 -189
- package/docs/enums/ChatAnswer.md +0 -22
- package/docs/enums/ChatsEvent.md +0 -22
- package/docs/enums/FilesEvent.md +0 -24
- package/docs/enums/GroupEvent.md +0 -29
- package/docs/enums/OrganizationsEvent.md +0 -31
- package/docs/enums/UserEvent.md +0 -15
- package/docs/enums/WorkspaceEvent.md +0 -17
- package/docs/enums/WorkspacesEvent.md +0 -24
- package/docs/interfaces/Disposable.md +0 -25
- package/docs/interfaces/Event.md +0 -58
- package/docs/interfaces/EventSubscriber.md +0 -41
- package/docs/interfaces/Input.md +0 -35
- package/docs/modules.md +0 -205
- package/jest.config.ts +0 -199
- package/jest.setup.ts +0 -2
- package/scripts/docs/index.js +0 -15
- 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/organizations.ts +0 -56
- 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
@@ -4,11 +4,14 @@ import {
|
|
4
4
|
Organizations
|
5
5
|
} from "./organizations"
|
6
6
|
import { OrganizationImpl } from "./organization.impl"
|
7
|
-
import { RpcService } from "
|
8
|
-
import { OrganizationDto, UserSettings } from "
|
9
|
-
import { Context } from "
|
7
|
+
import { RpcService } from "../../services/rpcService"
|
8
|
+
import { ApplyInviteCodeResponse, OrganizationDto, UserSettings } from "../../dto/userInfoResponse"
|
9
|
+
import { Context } from "../../context"
|
10
10
|
import { Organization } from "./organization"
|
11
|
-
import { ResponseUtils } from "
|
11
|
+
import { ResponseUtils } from "../../services/responseUtils"
|
12
|
+
import { UserProfileService } from "../../services/userProfileService"
|
13
|
+
import {UploadFile} from "../files/files"
|
14
|
+
import {IconDto, IconResponse, ResourceType} from "../../dto/workspacesResponse"
|
12
15
|
|
13
16
|
export class OrganizationsImpl extends Organizations {
|
14
17
|
constructor(public readonly context: Context) {
|
@@ -61,6 +64,27 @@ export class OrganizationsImpl extends Organizations {
|
|
61
64
|
return this.internalDeleteOrganization(id)
|
62
65
|
}
|
63
66
|
|
67
|
+
async applyInviteCode(code: string): Promise<ApplyInviteCodeResponse> {
|
68
|
+
const response = await this.context
|
69
|
+
.resolve(RpcService)
|
70
|
+
?.requestBuilder("api/v1/Invites/apply")
|
71
|
+
.sendPutJson({
|
72
|
+
code: code
|
73
|
+
})
|
74
|
+
if (ResponseUtils.isFail(response)) {
|
75
|
+
await ResponseUtils.throwError(
|
76
|
+
"Invite code validation failed",
|
77
|
+
response
|
78
|
+
)
|
79
|
+
}
|
80
|
+
|
81
|
+
await this.context.resolve(UserProfileService)?.fetch()
|
82
|
+
|
83
|
+
const result = (await response?.json()) as ApplyInviteCodeResponse
|
84
|
+
|
85
|
+
return result
|
86
|
+
}
|
87
|
+
|
64
88
|
//----------------------------------------------------------------------------
|
65
89
|
// INTERNALS
|
66
90
|
//----------------------------------------------------------------------------
|
@@ -79,17 +103,22 @@ export class OrganizationsImpl extends Organizations {
|
|
79
103
|
if (!this.contains(id)) {
|
80
104
|
throw new Error(`Organization delete, id: ${id} is not found`)
|
81
105
|
}
|
106
|
+
// send request to the server
|
82
107
|
const response = await this.context
|
83
108
|
.resolve(RpcService)
|
84
109
|
?.requestBuilder("/api/v1/Organizations")
|
85
110
|
.searchParam("id", id)
|
86
111
|
.sendDelete()
|
112
|
+
|
113
|
+
// check response status
|
87
114
|
if (ResponseUtils.isFail(response)) {
|
88
115
|
await ResponseUtils.throwError(
|
89
116
|
`Organization ${id} delete, failed`,
|
90
117
|
response
|
91
118
|
)
|
92
119
|
}
|
120
|
+
|
121
|
+
// check organization in collection
|
93
122
|
const org = <OrganizationImpl>this.get(id)
|
94
123
|
const index = this.organizations.indexOf(org)
|
95
124
|
if (index < 0) {
|
@@ -134,7 +163,8 @@ export class OrganizationsImpl extends Organizations {
|
|
134
163
|
profile: {
|
135
164
|
name: name,
|
136
165
|
description: description
|
137
|
-
}
|
166
|
+
},
|
167
|
+
currentOrganizationId: this.currentOrganizationId
|
138
168
|
})
|
139
169
|
if (ResponseUtils.isFail(response)) {
|
140
170
|
await ResponseUtils.throwError(
|
@@ -142,7 +172,9 @@ export class OrganizationsImpl extends Organizations {
|
|
142
172
|
response
|
143
173
|
)
|
144
174
|
}
|
145
|
-
const content = (await response!.json()
|
175
|
+
const content = (await response!.json() as {
|
176
|
+
organization: OrganizationDto
|
177
|
+
}).organization as OrganizationDto
|
146
178
|
|
147
179
|
// create organization and init from content
|
148
180
|
const org = await new OrganizationImpl(this.context).initFrom(content, true)
|
@@ -170,22 +202,139 @@ export class OrganizationsImpl extends Organizations {
|
|
170
202
|
organizations: OrganizationDto[],
|
171
203
|
settings: UserSettings | null | undefined
|
172
204
|
): Promise<void> {
|
205
|
+
|
206
|
+
this.organizations = []
|
207
|
+
|
208
|
+
// set current organization
|
173
209
|
this.currentOrganizationId = settings?.activeOrganizationId
|
210
|
+
|
211
|
+
// wait list
|
212
|
+
const waitList: Promise<OrganizationImpl>[] = []
|
213
|
+
|
214
|
+
// init organizations
|
174
215
|
for (const organization of organizations) {
|
175
216
|
// create organization and init from content
|
176
|
-
const
|
217
|
+
const orgPromise = new OrganizationImpl(this.context).initFrom(
|
177
218
|
organization,
|
178
219
|
adminInOrganization.includes(organization.id)
|
179
220
|
)
|
180
221
|
|
222
|
+
// add organization to wait list
|
223
|
+
waitList.push(orgPromise)
|
224
|
+
}
|
225
|
+
|
226
|
+
// wait for all organizations
|
227
|
+
const orgImpls = await Promise.all(waitList)
|
228
|
+
|
229
|
+
// add organizations to collection
|
230
|
+
for (const org of orgImpls) {
|
181
231
|
// add organization to collection
|
182
232
|
this.organizations.push(org)
|
233
|
+
}
|
234
|
+
}
|
183
235
|
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
236
|
+
|
237
|
+
async uploadIconGlobal(organizationId: string, resourceId: string, resourceType: ResourceType, icon: UploadFile): Promise<string> {
|
238
|
+
|
239
|
+
// check icon file
|
240
|
+
if (icon === undefined || icon === null) {
|
241
|
+
throw new Error("Organization icon upload, file is undefined or null")
|
242
|
+
}
|
243
|
+
|
244
|
+
const resourceTypeInt: number = resourceType
|
245
|
+
|
246
|
+
// form data to send
|
247
|
+
const form = new FormData()
|
248
|
+
form.append("OrganizationId", organizationId)
|
249
|
+
form.append("ResourceId", resourceId)
|
250
|
+
form.append("ResourceType", resourceTypeInt.toString())
|
251
|
+
form.append("FileName", icon.name)
|
252
|
+
form.append("File", icon, icon.name)
|
253
|
+
|
254
|
+
// send request to the server
|
255
|
+
const response = await this.context
|
256
|
+
.resolve(RpcService)
|
257
|
+
?.requestBuilder("api/v1/Files/icon")
|
258
|
+
.sendPutFormData(form)
|
259
|
+
|
260
|
+
// check response status
|
261
|
+
if (ResponseUtils.isFail(response)) {
|
262
|
+
await ResponseUtils.throwError(`Organization icon upload ${icon.name}`, response)
|
263
|
+
}
|
264
|
+
|
265
|
+
const iconResponse = await response!.json() as IconResponse
|
266
|
+
|
267
|
+
return iconResponse.iconId
|
268
|
+
}
|
269
|
+
|
270
|
+
async getIconData(id: string): Promise<IconDto> {
|
271
|
+
if (id === null || id === undefined || id.trim() === ""){
|
272
|
+
throw new Error("Icon id is null or empty")
|
273
|
+
}
|
274
|
+
|
275
|
+
// send request to the server
|
276
|
+
const response = await this.context
|
277
|
+
.resolve(RpcService)
|
278
|
+
?.requestBuilder("api/v1/Files/icon")
|
279
|
+
.searchParam("iconId", id)
|
280
|
+
.sendGet()
|
281
|
+
|
282
|
+
// check response status
|
283
|
+
if (ResponseUtils.isFail(response)) {
|
284
|
+
await ResponseUtils.throwError(
|
285
|
+
`Failed during get of icon ${id}`,
|
286
|
+
response
|
287
|
+
)
|
189
288
|
}
|
289
|
+
|
290
|
+
return await response!.json() as IconDto
|
291
|
+
}
|
292
|
+
|
293
|
+
async getNewestIcon(resourceId: string, resourceType: ResourceType): Promise<IconDto>{
|
294
|
+
if (resourceId === null || resourceId === undefined || resourceId.trim() === ""){
|
295
|
+
throw new Error("Resource id is null or empty")
|
296
|
+
}
|
297
|
+
|
298
|
+
const resourceTypeInt: number = resourceType
|
299
|
+
|
300
|
+
// send request to the server
|
301
|
+
const response = await this.context
|
302
|
+
.resolve(RpcService)
|
303
|
+
?.requestBuilder("api/v1/Files/icon/newest")
|
304
|
+
.searchParam("resourceId", resourceId)
|
305
|
+
.searchParam("resourceType", resourceTypeInt.toString())
|
306
|
+
.sendGet()
|
307
|
+
|
308
|
+
// check response status
|
309
|
+
if (ResponseUtils.isFail(response)) {
|
310
|
+
await ResponseUtils.throwError(
|
311
|
+
`Failed during get of icon for ${resourceId} ${resourceType.toString()}`,
|
312
|
+
response
|
313
|
+
)
|
314
|
+
}
|
315
|
+
|
316
|
+
return await response!.json() as IconDto
|
317
|
+
}
|
318
|
+
|
319
|
+
async deleteIcon(id: string): Promise<void> {
|
320
|
+
if (id === undefined || id === null) {
|
321
|
+
throw new Error("Icon delete, id is undefined or null")
|
322
|
+
}
|
323
|
+
if (id.length === 0 || id.trim().length === 0) {
|
324
|
+
throw new Error("Icon delete, id is empty")
|
325
|
+
}
|
326
|
+
|
327
|
+
// send request to the server
|
328
|
+
const response = await this.context
|
329
|
+
.resolve(RpcService)
|
330
|
+
?.requestBuilder("api/v1/Files/icon")
|
331
|
+
.searchParam("iconId", id)
|
332
|
+
.sendDelete()
|
333
|
+
|
334
|
+
// check response status
|
335
|
+
if (ResponseUtils.isFail(response)) {
|
336
|
+
await ResponseUtils.throwError(`Failed to delete icon: ${id}`, response)
|
337
|
+
}
|
338
|
+
|
190
339
|
}
|
191
340
|
}
|
@@ -0,0 +1,93 @@
|
|
1
|
+
import { ApplyInviteCodeResponse } from "../../dto/userInfoResponse"
|
2
|
+
import { EventDispatcher } from "../../events"
|
3
|
+
import { Organization } from "./organization"
|
4
|
+
import {IconDto, ResourceType} from "../../dto/workspacesResponse"
|
5
|
+
import {UploadFile} from "../files/files"
|
6
|
+
|
7
|
+
/**
|
8
|
+
* Organization id.
|
9
|
+
*/
|
10
|
+
export type OrganizationId = string
|
11
|
+
|
12
|
+
/**
|
13
|
+
* Organization event.
|
14
|
+
*/
|
15
|
+
export enum OrganizationsEvent {
|
16
|
+
ADDED = "added",
|
17
|
+
REMOVED = "removed",
|
18
|
+
CURRENT_CHANGED = "currentChanged"
|
19
|
+
}
|
20
|
+
|
21
|
+
/**
|
22
|
+
* Organizations storage.
|
23
|
+
*/
|
24
|
+
export abstract class Organizations extends EventDispatcher<
|
25
|
+
OrganizationsEvent,
|
26
|
+
Organization
|
27
|
+
> {
|
28
|
+
/**
|
29
|
+
* User's organizations.
|
30
|
+
*/
|
31
|
+
abstract get collection(): ReadonlyArray<Organization>
|
32
|
+
|
33
|
+
/**
|
34
|
+
* Current organization.
|
35
|
+
*/
|
36
|
+
abstract get current(): OrganizationId
|
37
|
+
abstract set current(value: OrganizationId)
|
38
|
+
|
39
|
+
/**
|
40
|
+
* Get organization by id.
|
41
|
+
*/
|
42
|
+
abstract get(id: OrganizationId): Organization
|
43
|
+
|
44
|
+
/**
|
45
|
+
* Try to get organization by id.
|
46
|
+
* @param id
|
47
|
+
*/
|
48
|
+
abstract tryGet(id: OrganizationId): Organization | undefined
|
49
|
+
|
50
|
+
/**
|
51
|
+
* Create new organization.
|
52
|
+
*/
|
53
|
+
abstract create(name: string, description: string): Promise<Organization>
|
54
|
+
|
55
|
+
/**
|
56
|
+
* Delete organization.
|
57
|
+
*/
|
58
|
+
abstract delete(id: OrganizationId): Promise<void>
|
59
|
+
|
60
|
+
/**
|
61
|
+
* Apply invite code for user
|
62
|
+
*/
|
63
|
+
abstract applyInviteCode(code: string): Promise<ApplyInviteCodeResponse>
|
64
|
+
|
65
|
+
/**
|
66
|
+
* Upload icon for any available resource ( organization, user, workspace, chat )
|
67
|
+
* @param organizationId
|
68
|
+
* @param resourceId
|
69
|
+
* @param resourceType
|
70
|
+
* @param icon
|
71
|
+
*/
|
72
|
+
abstract uploadIconGlobal(organizationId: string, resourceId: string, resourceType: ResourceType, icon: UploadFile): Promise<string>
|
73
|
+
|
74
|
+
/**
|
75
|
+
* Get icon url and name for given id
|
76
|
+
* @param id
|
77
|
+
*/
|
78
|
+
abstract getIconData(id: string): Promise<IconDto>
|
79
|
+
|
80
|
+
/**
|
81
|
+
* Get latest icon for provided resource
|
82
|
+
* @param resourceId
|
83
|
+
* @param resourceType
|
84
|
+
*/
|
85
|
+
abstract getNewestIcon(resourceId: string, resourceType: ResourceType): Promise<IconDto>
|
86
|
+
|
87
|
+
/**
|
88
|
+
* Delete icon by ID
|
89
|
+
* @param id
|
90
|
+
*/
|
91
|
+
abstract deleteIcon(id: string): Promise<void>
|
92
|
+
|
93
|
+
}
|
@@ -0,0 +1,157 @@
|
|
1
|
+
import { UserEvent, UserProfile } from "./userProfile"
|
2
|
+
import { UserInfoResponse } from "../../dto/userInfoResponse"
|
3
|
+
import { Context } from "../../context"
|
4
|
+
import { RpcService } from "../../services/rpcService"
|
5
|
+
import { ResponseUtils } from "../../services/responseUtils"
|
6
|
+
import { UserProfileService } from "../../services/userProfileService"
|
7
|
+
import {InviteResponse} from "../../dto/invitesResponse"
|
8
|
+
|
9
|
+
export class UserProfileImpl extends UserProfile {
|
10
|
+
private content?: UserInfoResponse
|
11
|
+
|
12
|
+
|
13
|
+
constructor(private readonly context: Context) {
|
14
|
+
super()
|
15
|
+
}
|
16
|
+
|
17
|
+
get id(): string {
|
18
|
+
if (this.content) {
|
19
|
+
return this.content.user.id
|
20
|
+
}
|
21
|
+
throw new Error("The profile is not loaded.")
|
22
|
+
}
|
23
|
+
|
24
|
+
get name(): string {
|
25
|
+
if (this.content) {
|
26
|
+
return this.content.user.profile.name
|
27
|
+
}
|
28
|
+
throw new Error("The profile is not loaded.")
|
29
|
+
}
|
30
|
+
|
31
|
+
get email(): string {
|
32
|
+
if (this.content) {
|
33
|
+
return this.content.user.profile.email
|
34
|
+
}
|
35
|
+
throw new Error("The profile is not loaded.")
|
36
|
+
}
|
37
|
+
|
38
|
+
get binanceId(): string {
|
39
|
+
if (this.content) {
|
40
|
+
return this.content.user.profile.binanceId
|
41
|
+
}
|
42
|
+
throw new Error("The profile is not loaded.")
|
43
|
+
}
|
44
|
+
|
45
|
+
get educationalInstitution(): string {
|
46
|
+
if (this.content){
|
47
|
+
return this.content.user.profile.educationalInstitution
|
48
|
+
}
|
49
|
+
throw new Error("The profile is not loaded.")
|
50
|
+
}
|
51
|
+
|
52
|
+
get isDeleted(): boolean {
|
53
|
+
if (this.content) {
|
54
|
+
return this.content.user.isDeleted
|
55
|
+
}
|
56
|
+
throw new Error("The profile is not loaded.")
|
57
|
+
}
|
58
|
+
|
59
|
+
get isAnonymous(): boolean {
|
60
|
+
if (this.content) {
|
61
|
+
return this.content.user.isAnonymousMode
|
62
|
+
}
|
63
|
+
throw new Error("The profile is not loaded.")
|
64
|
+
}
|
65
|
+
|
66
|
+
get createdAt(): Date {
|
67
|
+
if (this.content) {
|
68
|
+
return new Date(this.content.user.created_at)
|
69
|
+
}
|
70
|
+
throw new Error("The profile is not loaded.")
|
71
|
+
}
|
72
|
+
|
73
|
+
get modifiedAt(): Date {
|
74
|
+
if (this.content) {
|
75
|
+
return new Date(this.content.user.modified_at)
|
76
|
+
}
|
77
|
+
throw new Error("The profile is not loaded.")
|
78
|
+
}
|
79
|
+
|
80
|
+
initFrom(content: UserInfoResponse) {
|
81
|
+
this.content = content
|
82
|
+
this.dispatch({
|
83
|
+
type: UserEvent.CHANGED,
|
84
|
+
data: this
|
85
|
+
})
|
86
|
+
}
|
87
|
+
|
88
|
+
async fetch() : Promise<void>{
|
89
|
+
await this.context.resolve(UserProfileService)?.fetch()
|
90
|
+
}
|
91
|
+
|
92
|
+
async updateUser(name: string, binanceId: string, educationalInstitution: string): Promise<void>{
|
93
|
+
if (!this.content) {
|
94
|
+
throw new Error("User is not loaded.")
|
95
|
+
}
|
96
|
+
|
97
|
+
if (name === this.name && binanceId === this.binanceId && educationalInstitution === this.educationalInstitution) {
|
98
|
+
return Promise.resolve()
|
99
|
+
}
|
100
|
+
|
101
|
+
const response = await this.context
|
102
|
+
.resolve(RpcService)
|
103
|
+
?.requestBuilder("api/v1/Users")
|
104
|
+
.sendPutJson({
|
105
|
+
profile: {
|
106
|
+
name,
|
107
|
+
binanceId,
|
108
|
+
educationalInstitution
|
109
|
+
}
|
110
|
+
})
|
111
|
+
|
112
|
+
if (ResponseUtils.isFail(response)) {
|
113
|
+
await ResponseUtils.throwError("Failed to change organization", response)
|
114
|
+
}
|
115
|
+
|
116
|
+
if (this.content) {
|
117
|
+
this.content!.user.profile.name = name
|
118
|
+
this.content!.user.profile.binanceId = binanceId
|
119
|
+
this.content!.user.profile.educationalInstitution = educationalInstitution
|
120
|
+
}
|
121
|
+
|
122
|
+
this.dispatch({
|
123
|
+
type: UserEvent.CHANGED,
|
124
|
+
data: this
|
125
|
+
})
|
126
|
+
}
|
127
|
+
|
128
|
+
async getUserInvites(): Promise<InviteResponse>{
|
129
|
+
// get invites
|
130
|
+
const response = await this.context.resolve(RpcService)
|
131
|
+
?.requestBuilder("api/v1/Invites/link/user")
|
132
|
+
.sendGet()
|
133
|
+
|
134
|
+
// check response status
|
135
|
+
if (ResponseUtils.isFail(response)) {
|
136
|
+
await ResponseUtils.throwError("Failed to get invites for current user", response)
|
137
|
+
}
|
138
|
+
|
139
|
+
const json = await response!.json()
|
140
|
+
|
141
|
+
return json as InviteResponse
|
142
|
+
}
|
143
|
+
|
144
|
+
async deleteUser(): Promise<boolean>{
|
145
|
+
const response = await this.context
|
146
|
+
.resolve(RpcService)?.
|
147
|
+
requestBuilder("/api/v1/Users/self")
|
148
|
+
.sendDelete()
|
149
|
+
|
150
|
+
if (ResponseUtils.isFail(response)) {
|
151
|
+
await ResponseUtils.throwError("Failed to delete user", response)
|
152
|
+
}
|
153
|
+
|
154
|
+
return true
|
155
|
+
}
|
156
|
+
|
157
|
+
}
|
@@ -0,0 +1,81 @@
|
|
1
|
+
import { EventDispatcher } from "../../events"
|
2
|
+
import {InviteResponse} from "../../dto/invitesResponse"
|
3
|
+
|
4
|
+
export type UserId = string
|
5
|
+
|
6
|
+
export enum UserEvent {
|
7
|
+
CHANGED = "changed"
|
8
|
+
}
|
9
|
+
|
10
|
+
export abstract class UserProfile extends EventDispatcher<
|
11
|
+
UserEvent,
|
12
|
+
UserProfile
|
13
|
+
> {
|
14
|
+
/**
|
15
|
+
* User id.
|
16
|
+
*/
|
17
|
+
abstract get id(): UserId
|
18
|
+
|
19
|
+
/**
|
20
|
+
* User name.
|
21
|
+
*/
|
22
|
+
abstract get name(): string
|
23
|
+
|
24
|
+
/**
|
25
|
+
* User email.
|
26
|
+
*/
|
27
|
+
abstract get email(): string
|
28
|
+
|
29
|
+
/**
|
30
|
+
* Additional binance ID
|
31
|
+
*/
|
32
|
+
abstract get binanceId(): string
|
33
|
+
|
34
|
+
/**
|
35
|
+
* Additional educational institution
|
36
|
+
*/
|
37
|
+
abstract get educationalInstitution() : string
|
38
|
+
|
39
|
+
/**
|
40
|
+
* Is user deleted.
|
41
|
+
*/
|
42
|
+
abstract get isDeleted(): boolean
|
43
|
+
|
44
|
+
/**
|
45
|
+
* Is user anonymous
|
46
|
+
*/
|
47
|
+
abstract get isAnonymous(): boolean
|
48
|
+
|
49
|
+
/**
|
50
|
+
* Created at.
|
51
|
+
*/
|
52
|
+
abstract get createdAt(): Date
|
53
|
+
|
54
|
+
/**
|
55
|
+
* Modified at.
|
56
|
+
*/
|
57
|
+
abstract get modifiedAt(): Date
|
58
|
+
|
59
|
+
/**
|
60
|
+
* Fetch user profile
|
61
|
+
*/
|
62
|
+
abstract fetch(): Promise<void>
|
63
|
+
|
64
|
+
/**
|
65
|
+
* Update user profile
|
66
|
+
* @param newName
|
67
|
+
* @param newId
|
68
|
+
* @param newEducationalInstitution
|
69
|
+
*/
|
70
|
+
abstract updateUser(newName: string, newId: string, newEducationalInstitution: string): Promise<void>
|
71
|
+
|
72
|
+
/**
|
73
|
+
* Get all invite links for user
|
74
|
+
*/
|
75
|
+
abstract getUserInvites(): Promise<InviteResponse>
|
76
|
+
|
77
|
+
/**
|
78
|
+
* Delete User
|
79
|
+
*/
|
80
|
+
abstract deleteUser(): Promise<boolean>
|
81
|
+
}
|
@@ -1,11 +1,11 @@
|
|
1
|
-
import { Context } from "
|
2
|
-
import { Files } from "
|
1
|
+
import { Context } from "../../context"
|
2
|
+
import { Files } from "../files/files"
|
3
3
|
import { Workspace, WorkspaceEvent } from "./workspace"
|
4
|
-
import { OrganizationImpl } from "
|
5
|
-
import { WorkspaceDto } from "
|
6
|
-
import { RpcService } from "
|
7
|
-
import { FilesImpl } from "
|
8
|
-
import { ResponseUtils } from "
|
4
|
+
import { OrganizationImpl } from "../organizations/organization.impl"
|
5
|
+
import { WorkspaceDto } from "../../dto/workspacesResponse"
|
6
|
+
import { RpcService } from "../../services/rpcService"
|
7
|
+
import { FilesImpl } from "../files/files.impl"
|
8
|
+
import { ResponseUtils } from "../../services/responseUtils"
|
9
9
|
|
10
10
|
export class WorkspaceImpl extends Workspace {
|
11
11
|
private _isMarkAsDeleted: boolean = false
|
@@ -46,6 +46,26 @@ export class WorkspaceImpl extends Workspace {
|
|
46
46
|
return this._files
|
47
47
|
}
|
48
48
|
|
49
|
+
async filesCount(): Promise<number> {
|
50
|
+
// send request to the server
|
51
|
+
const response = await this.context
|
52
|
+
.resolve(RpcService)
|
53
|
+
?.requestBuilder("api/v1/Workspaces/files/count")
|
54
|
+
.searchParam("workspaceId", this.id)
|
55
|
+
.searchParam("organizationId", this.organization.id)
|
56
|
+
.sendGet()
|
57
|
+
|
58
|
+
// check response status
|
59
|
+
if (ResponseUtils.isFail(response)) {
|
60
|
+
await ResponseUtils.throwError(
|
61
|
+
`Failed during get workspace total files count for ${this.id} of ${this.organization.id}`,
|
62
|
+
response
|
63
|
+
)
|
64
|
+
}
|
65
|
+
|
66
|
+
return ((await response!.json()) as { count: number }).count
|
67
|
+
}
|
68
|
+
|
49
69
|
async change(name: string, description: string): Promise<void> {
|
50
70
|
if (!this._workspace) {
|
51
71
|
throw new Error("Workspace is not loaded.")
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import { EventDispatcher } from "
|
2
|
-
import { Files } from "
|
1
|
+
import { EventDispatcher } from "../../events"
|
2
|
+
import { Files } from "../files/files"
|
3
3
|
import { WorkspaceId } from "./workspaces"
|
4
|
-
import { Organization } from "
|
4
|
+
import { Organization } from "../organizations/organization"
|
5
5
|
|
6
6
|
/**
|
7
7
|
* Workspace event.
|
@@ -42,6 +42,11 @@ export abstract class Workspace extends EventDispatcher<
|
|
42
42
|
*/
|
43
43
|
abstract get files(): Files
|
44
44
|
|
45
|
+
/**
|
46
|
+
* Workspace files count.
|
47
|
+
*/
|
48
|
+
abstract filesCount(): Promise<number>
|
49
|
+
|
45
50
|
/**
|
46
51
|
* Change workspace name and description.
|
47
52
|
*/
|