diff --git a/packages/api/src/Domain/Client/Workspace/Workspace.ts b/packages/api/src/Domain/Client/Workspace/Workspace.ts deleted file mode 100644 index 47ec1fe2b..000000000 --- a/packages/api/src/Domain/Client/Workspace/Workspace.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { WorkspaceType } from '@standardnotes/common' - -export type Workspace = { - uuid: string - type: WorkspaceType - name: string | null - keyRotationIndex: number - createdAt: number - updatedAt: number -} diff --git a/packages/api/src/Domain/Client/Workspace/WorkspaceApiOperations.ts b/packages/api/src/Domain/Client/Workspace/WorkspaceApiOperations.ts deleted file mode 100644 index 57edfcecc..000000000 --- a/packages/api/src/Domain/Client/Workspace/WorkspaceApiOperations.ts +++ /dev/null @@ -1,8 +0,0 @@ -export enum WorkspaceApiOperations { - Creating, - Inviting, - Accepting, - ListingWorkspaces, - ListingWorkspaceUsers, - InitiatingKeyshare, -} diff --git a/packages/api/src/Domain/Client/Workspace/WorkspaceApiService.ts b/packages/api/src/Domain/Client/Workspace/WorkspaceApiService.ts deleted file mode 100644 index af43c91e2..000000000 --- a/packages/api/src/Domain/Client/Workspace/WorkspaceApiService.ts +++ /dev/null @@ -1,156 +0,0 @@ -import { WorkspaceAccessLevel, WorkspaceType } from '@standardnotes/common' - -import { ErrorMessage } from '../../Error/ErrorMessage' -import { ApiCallError } from '../../Error/ApiCallError' -import { WorkspaceCreationResponse } from '../../Response/Workspace/WorkspaceCreationResponse' -import { WorkspaceInvitationAcceptingResponse } from '../../Response/Workspace/WorkspaceInvitationAcceptingResponse' -import { WorkspaceInvitationResponse } from '../../Response/Workspace/WorkspaceInvitationResponse' -import { WorkspaceServerInterface } from '../../Server/Workspace/WorkspaceServerInterface' -import { WorkspaceListResponse } from '../../Response/Workspace/WorkspaceListResponse' -import { WorkspaceUserListResponse } from '../../Response/Workspace/WorkspaceUserListResponse' -import { WorkspaceKeyshareInitiatingResponse } from '../../Response/Workspace/WorkspaceKeyshareInitiatingResponse' - -import { WorkspaceApiServiceInterface } from './WorkspaceApiServiceInterface' -import { WorkspaceApiOperations } from './WorkspaceApiOperations' - -export class WorkspaceApiService implements WorkspaceApiServiceInterface { - private operationsInProgress: Map - - constructor(private workspaceServer: WorkspaceServerInterface) { - this.operationsInProgress = new Map() - } - - async initiateKeyshare(dto: { - workspaceUuid: string - userUuid: string - encryptedWorkspaceKey: string - }): Promise { - this.lockOperation(WorkspaceApiOperations.InitiatingKeyshare) - - try { - const response = await this.workspaceServer.initiateKeyshare({ - workspaceUuid: dto.workspaceUuid, - userUuid: dto.userUuid, - encryptedWorkspaceKey: dto.encryptedWorkspaceKey, - }) - - this.unlockOperation(WorkspaceApiOperations.InitiatingKeyshare) - - return response - } catch (error) { - throw new ApiCallError(ErrorMessage.GenericFail) - } - } - - async listWorkspaceUsers(dto: { workspaceUuid: string }): Promise { - this.lockOperation(WorkspaceApiOperations.ListingWorkspaceUsers) - - try { - const response = await this.workspaceServer.listWorkspaceUsers({ workspaceUuid: dto.workspaceUuid }) - - this.unlockOperation(WorkspaceApiOperations.ListingWorkspaceUsers) - - return response - } catch (error) { - throw new ApiCallError(ErrorMessage.GenericFail) - } - } - - async listWorkspaces(): Promise { - this.lockOperation(WorkspaceApiOperations.ListingWorkspaces) - - try { - const response = await this.workspaceServer.listWorkspaces({}) - - this.unlockOperation(WorkspaceApiOperations.ListingWorkspaces) - - return response - } catch (error) { - throw new ApiCallError(ErrorMessage.GenericFail) - } - } - - async acceptInvite(dto: { - inviteUuid: string - userUuid: string - publicKey: string - encryptedPrivateKey: string - }): Promise { - this.lockOperation(WorkspaceApiOperations.Accepting) - - try { - const response = await this.workspaceServer.acceptInvite({ - encryptedPrivateKey: dto.encryptedPrivateKey, - publicKey: dto.publicKey, - inviteUuid: dto.inviteUuid, - userUuid: dto.userUuid, - }) - - this.unlockOperation(WorkspaceApiOperations.Accepting) - - return response - } catch (error) { - throw new ApiCallError(ErrorMessage.GenericFail) - } - } - - async inviteToWorkspace(dto: { - inviteeEmail: string - workspaceUuid: string - accessLevel: WorkspaceAccessLevel - }): Promise { - this.lockOperation(WorkspaceApiOperations.Inviting) - - try { - const response = await this.workspaceServer.inviteToWorkspace({ - inviteeEmail: dto.inviteeEmail, - workspaceUuid: dto.workspaceUuid, - accessLevel: dto.accessLevel, - }) - - this.unlockOperation(WorkspaceApiOperations.Inviting) - - return response - } catch (error) { - throw new ApiCallError(ErrorMessage.GenericFail) - } - } - - async createWorkspace(dto: { - workspaceType: WorkspaceType - encryptedWorkspaceKey?: string - encryptedPrivateKey?: string - publicKey?: string - workspaceName?: string - }): Promise { - this.lockOperation(WorkspaceApiOperations.Creating) - - try { - const response = await this.workspaceServer.createWorkspace({ - workspaceType: dto.workspaceType, - encryptedPrivateKey: dto.encryptedPrivateKey, - encryptedWorkspaceKey: dto.encryptedWorkspaceKey, - publicKey: dto.publicKey, - workspaceName: dto.workspaceName, - }) - - this.unlockOperation(WorkspaceApiOperations.Creating) - - return response - } catch (error) { - throw new ApiCallError(ErrorMessage.GenericFail) - } - } - - private lockOperation(operation: WorkspaceApiOperations): void { - if (this.operationsInProgress.get(operation)) { - throw new ApiCallError(ErrorMessage.GenericInProgress) - } - - this.operationsInProgress.set(operation, true) - } - - private unlockOperation(operation: WorkspaceApiOperations): void { - this.operationsInProgress.set(operation, false) - } -} diff --git a/packages/api/src/Domain/Client/Workspace/WorkspaceApiServiceInterface.ts b/packages/api/src/Domain/Client/Workspace/WorkspaceApiServiceInterface.ts deleted file mode 100644 index 95be52d42..000000000 --- a/packages/api/src/Domain/Client/Workspace/WorkspaceApiServiceInterface.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { WorkspaceAccessLevel, WorkspaceType } from '@standardnotes/common' - -import { WorkspaceKeyshareInitiatingResponse } from '../../Response/Workspace/WorkspaceKeyshareInitiatingResponse' -import { WorkspaceCreationResponse } from '../../Response/Workspace/WorkspaceCreationResponse' -import { WorkspaceInvitationAcceptingResponse } from '../../Response/Workspace/WorkspaceInvitationAcceptingResponse' -import { WorkspaceInvitationResponse } from '../../Response/Workspace/WorkspaceInvitationResponse' -import { WorkspaceListResponse } from '../../Response/Workspace/WorkspaceListResponse' -import { WorkspaceUserListResponse } from '../../Response/Workspace/WorkspaceUserListResponse' - -export interface WorkspaceApiServiceInterface { - createWorkspace(dto: { - workspaceType: WorkspaceType - encryptedWorkspaceKey?: string - encryptedPrivateKey?: string - publicKey?: string - workspaceName?: string - }): Promise - inviteToWorkspace(dto: { - inviteeEmail: string - workspaceUuid: string - accessLevel: WorkspaceAccessLevel - }): Promise - acceptInvite(dto: { - inviteUuid: string - userUuid: string - publicKey: string - encryptedPrivateKey: string - }): Promise - listWorkspaces(): Promise - listWorkspaceUsers(dto: { workspaceUuid: string }): Promise - initiateKeyshare(dto: { - workspaceUuid: string - userUuid: string - encryptedWorkspaceKey: string - }): Promise -} diff --git a/packages/api/src/Domain/Client/Workspace/WorkspaceUser.ts b/packages/api/src/Domain/Client/Workspace/WorkspaceUser.ts deleted file mode 100644 index bcad3c4e2..000000000 --- a/packages/api/src/Domain/Client/Workspace/WorkspaceUser.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { WorkspaceAccessLevel, WorkspaceUserStatus } from '@standardnotes/common' - -export type WorkspaceUser = { - uuid: string - accessLevel: WorkspaceAccessLevel - userUuid: string - userDisplayName: string | null - workspaceUuid: string - encryptedWorkspaceKey: string | null - publicKey: string | null - encryptedPrivateKey: string | null - status: WorkspaceUserStatus - keyRotationIndex: number - createdAt: number - updatedAt: number -} diff --git a/packages/api/src/Domain/Client/index.ts b/packages/api/src/Domain/Client/index.ts index f464c6ba7..160ddf512 100644 --- a/packages/api/src/Domain/Client/index.ts +++ b/packages/api/src/Domain/Client/index.ts @@ -15,7 +15,3 @@ export * from './User/UserApiService' export * from './User/UserApiServiceInterface' export * from './WebSocket/WebSocketApiService' export * from './WebSocket/WebSocketApiServiceInterface' -export * from './Workspace/WorkspaceApiService' -export * from './Workspace/WorkspaceApiServiceInterface' -export * from './Workspace/WorkspaceUser' -export * from './Workspace/Workspace' diff --git a/packages/api/src/Domain/Request/Workspace/WorkspaceCreationRequestParams.ts b/packages/api/src/Domain/Request/Workspace/WorkspaceCreationRequestParams.ts deleted file mode 100644 index b44a10b46..000000000 --- a/packages/api/src/Domain/Request/Workspace/WorkspaceCreationRequestParams.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { WorkspaceType } from '@standardnotes/common' - -export type WorkspaceCreationRequestParams = { - workspaceType: WorkspaceType - encryptedWorkspaceKey?: string - encryptedPrivateKey?: string - publicKey?: string - workspaceName?: string - [additionalParam: string]: unknown -} diff --git a/packages/api/src/Domain/Request/Workspace/WorkspaceInvitationAcceptingRequestParams.ts b/packages/api/src/Domain/Request/Workspace/WorkspaceInvitationAcceptingRequestParams.ts deleted file mode 100644 index 8a7e89a8c..000000000 --- a/packages/api/src/Domain/Request/Workspace/WorkspaceInvitationAcceptingRequestParams.ts +++ /dev/null @@ -1,7 +0,0 @@ -export type WorkspaceInvitationAcceptingRequestParams = { - inviteUuid: string - userUuid: string - publicKey: string - encryptedPrivateKey: string - [additionalParam: string]: unknown -} diff --git a/packages/api/src/Domain/Request/Workspace/WorkspaceInvitationRequestParams.ts b/packages/api/src/Domain/Request/Workspace/WorkspaceInvitationRequestParams.ts deleted file mode 100644 index 327a8d820..000000000 --- a/packages/api/src/Domain/Request/Workspace/WorkspaceInvitationRequestParams.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { WorkspaceAccessLevel } from '@standardnotes/common' - -export type WorkspaceInvitationRequestParams = { - workspaceUuid: string - inviteeEmail: string - accessLevel: WorkspaceAccessLevel - [additionalParam: string]: unknown -} diff --git a/packages/api/src/Domain/Request/Workspace/WorkspaceKeyshareInitiatingRequestParams.ts b/packages/api/src/Domain/Request/Workspace/WorkspaceKeyshareInitiatingRequestParams.ts deleted file mode 100644 index ae3a64160..000000000 --- a/packages/api/src/Domain/Request/Workspace/WorkspaceKeyshareInitiatingRequestParams.ts +++ /dev/null @@ -1,6 +0,0 @@ -export type WorkspaceKeyshareInitiatingRequestParams = { - userUuid: string - workspaceUuid: string - encryptedWorkspaceKey: string - [additionalParam: string]: unknown -} diff --git a/packages/api/src/Domain/Request/Workspace/WorkspaceListRequestParams.ts b/packages/api/src/Domain/Request/Workspace/WorkspaceListRequestParams.ts deleted file mode 100644 index f3bf4a4d7..000000000 --- a/packages/api/src/Domain/Request/Workspace/WorkspaceListRequestParams.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type WorkspaceListRequestParams = { - [additionalParam: string]: unknown -} diff --git a/packages/api/src/Domain/Request/Workspace/WorkspaceUserListRequestParams.ts b/packages/api/src/Domain/Request/Workspace/WorkspaceUserListRequestParams.ts deleted file mode 100644 index 2381ca407..000000000 --- a/packages/api/src/Domain/Request/Workspace/WorkspaceUserListRequestParams.ts +++ /dev/null @@ -1,4 +0,0 @@ -export type WorkspaceUserListRequestParams = { - workspaceUuid: string - [additionalParam: string]: unknown -} diff --git a/packages/api/src/Domain/Request/index.ts b/packages/api/src/Domain/Request/index.ts index bde8a4755..e6cd0f1a2 100644 --- a/packages/api/src/Domain/Request/index.ts +++ b/packages/api/src/Domain/Request/index.ts @@ -17,9 +17,3 @@ export * from './Subscription/SubscriptionInviteRequestParams' export * from './User/UserRegistrationRequestParams' export * from './UserRequest/UserRequestRequestParams' export * from './WebSocket/WebSocketConnectionTokenRequestParams' -export * from './Workspace/WorkspaceCreationRequestParams' -export * from './Workspace/WorkspaceInvitationAcceptingRequestParams' -export * from './Workspace/WorkspaceInvitationRequestParams' -export * from './Workspace/WorkspaceKeyshareInitiatingRequestParams' -export * from './Workspace/WorkspaceListRequestParams' -export * from './Workspace/WorkspaceUserListRequestParams' diff --git a/packages/api/src/Domain/Response/Workspace/WorkspaceCreationResponse.ts b/packages/api/src/Domain/Response/Workspace/WorkspaceCreationResponse.ts deleted file mode 100644 index b767dcff8..000000000 --- a/packages/api/src/Domain/Response/Workspace/WorkspaceCreationResponse.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Either } from '@standardnotes/common' - -import { HttpErrorResponseBody } from '../../Http/HttpErrorResponseBody' -import { HttpResponse } from '../../Http/HttpResponse' -import { WorkspaceCreationResponseBody } from './WorkspaceCreationResponseBody' - -export interface WorkspaceCreationResponse extends HttpResponse { - data: Either -} diff --git a/packages/api/src/Domain/Response/Workspace/WorkspaceCreationResponseBody.ts b/packages/api/src/Domain/Response/Workspace/WorkspaceCreationResponseBody.ts deleted file mode 100644 index a939c3fa8..000000000 --- a/packages/api/src/Domain/Response/Workspace/WorkspaceCreationResponseBody.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type WorkspaceCreationResponseBody = { - uuid: string -} diff --git a/packages/api/src/Domain/Response/Workspace/WorkspaceInvitationAcceptingResponse.ts b/packages/api/src/Domain/Response/Workspace/WorkspaceInvitationAcceptingResponse.ts deleted file mode 100644 index 04e4d583b..000000000 --- a/packages/api/src/Domain/Response/Workspace/WorkspaceInvitationAcceptingResponse.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Either } from '@standardnotes/common' - -import { HttpErrorResponseBody } from '../../Http/HttpErrorResponseBody' -import { HttpResponse } from '../../Http/HttpResponse' -import { WorkspaceInvitationAcceptingResponseBody } from './WorkspaceInvitationAcceptingResponseBody' - -export interface WorkspaceInvitationAcceptingResponse extends HttpResponse { - data: Either -} diff --git a/packages/api/src/Domain/Response/Workspace/WorkspaceInvitationAcceptingResponseBody.ts b/packages/api/src/Domain/Response/Workspace/WorkspaceInvitationAcceptingResponseBody.ts deleted file mode 100644 index cf3dcf842..000000000 --- a/packages/api/src/Domain/Response/Workspace/WorkspaceInvitationAcceptingResponseBody.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type WorkspaceInvitationAcceptingResponseBody = { - success: boolean -} diff --git a/packages/api/src/Domain/Response/Workspace/WorkspaceInvitationResponse.ts b/packages/api/src/Domain/Response/Workspace/WorkspaceInvitationResponse.ts deleted file mode 100644 index 5a50ccd96..000000000 --- a/packages/api/src/Domain/Response/Workspace/WorkspaceInvitationResponse.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Either } from '@standardnotes/common' - -import { HttpErrorResponseBody } from '../../Http/HttpErrorResponseBody' -import { HttpResponse } from '../../Http/HttpResponse' -import { WorkspaceInvitationResponseBody } from './WorkspaceInvitationResponseBody' - -export interface WorkspaceInvitationResponse extends HttpResponse { - data: Either -} diff --git a/packages/api/src/Domain/Response/Workspace/WorkspaceInvitationResponseBody.ts b/packages/api/src/Domain/Response/Workspace/WorkspaceInvitationResponseBody.ts deleted file mode 100644 index a66bbe545..000000000 --- a/packages/api/src/Domain/Response/Workspace/WorkspaceInvitationResponseBody.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type WorkspaceInvitationResponseBody = { - uuid: string -} diff --git a/packages/api/src/Domain/Response/Workspace/WorkspaceKeyshareInitiatingResponse.ts b/packages/api/src/Domain/Response/Workspace/WorkspaceKeyshareInitiatingResponse.ts deleted file mode 100644 index e29fc7046..000000000 --- a/packages/api/src/Domain/Response/Workspace/WorkspaceKeyshareInitiatingResponse.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Either } from '@standardnotes/common' - -import { HttpErrorResponseBody } from '../../Http/HttpErrorResponseBody' -import { HttpResponse } from '../../Http/HttpResponse' -import { WorkspaceKeyshareInitiatingResponseBody } from './WorkspaceKeyshareInitiatingResponseBody' - -export interface WorkspaceKeyshareInitiatingResponse extends HttpResponse { - data: Either -} diff --git a/packages/api/src/Domain/Response/Workspace/WorkspaceKeyshareInitiatingResponseBody.ts b/packages/api/src/Domain/Response/Workspace/WorkspaceKeyshareInitiatingResponseBody.ts deleted file mode 100644 index 649c43d14..000000000 --- a/packages/api/src/Domain/Response/Workspace/WorkspaceKeyshareInitiatingResponseBody.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type WorkspaceKeyshareInitiatingResponseBody = { - success: boolean -} diff --git a/packages/api/src/Domain/Response/Workspace/WorkspaceListResponse.ts b/packages/api/src/Domain/Response/Workspace/WorkspaceListResponse.ts deleted file mode 100644 index dd2bcff25..000000000 --- a/packages/api/src/Domain/Response/Workspace/WorkspaceListResponse.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Either } from '@standardnotes/common' - -import { HttpErrorResponseBody } from '../../Http/HttpErrorResponseBody' -import { HttpResponse } from '../../Http/HttpResponse' -import { WorkspaceListResponseBody } from './WorkspaceListResponseBody' - -export interface WorkspaceListResponse extends HttpResponse { - data: Either -} diff --git a/packages/api/src/Domain/Response/Workspace/WorkspaceListResponseBody.ts b/packages/api/src/Domain/Response/Workspace/WorkspaceListResponseBody.ts deleted file mode 100644 index 080b6384b..000000000 --- a/packages/api/src/Domain/Response/Workspace/WorkspaceListResponseBody.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { Workspace } from './../../Client/Workspace/Workspace' - -export type WorkspaceListResponseBody = { - ownedWorkspaces: Array - joinedWorkspaces: Array -} diff --git a/packages/api/src/Domain/Response/Workspace/WorkspaceUserListResponse.ts b/packages/api/src/Domain/Response/Workspace/WorkspaceUserListResponse.ts deleted file mode 100644 index e339a29e0..000000000 --- a/packages/api/src/Domain/Response/Workspace/WorkspaceUserListResponse.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Either } from '@standardnotes/common' - -import { HttpErrorResponseBody } from '../../Http/HttpErrorResponseBody' -import { HttpResponse } from '../../Http/HttpResponse' -import { WorkspaceUserListResponseBody } from './WorkspaceUserListResponseBody' - -export interface WorkspaceUserListResponse extends HttpResponse { - data: Either -} diff --git a/packages/api/src/Domain/Response/Workspace/WorkspaceUserListResponseBody.ts b/packages/api/src/Domain/Response/Workspace/WorkspaceUserListResponseBody.ts deleted file mode 100644 index e6e137387..000000000 --- a/packages/api/src/Domain/Response/Workspace/WorkspaceUserListResponseBody.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { WorkspaceUser } from './../../Client/Workspace/WorkspaceUser' - -export type WorkspaceUserListResponseBody = { - users: Array -} diff --git a/packages/api/src/Domain/Response/index.ts b/packages/api/src/Domain/Response/index.ts index 862d6cab6..24e936e9e 100644 --- a/packages/api/src/Domain/Response/index.ts +++ b/packages/api/src/Domain/Response/index.ts @@ -42,15 +42,3 @@ export * from './UserRequest/UserRequestResponse' export * from './UserRequest/UserRequestResponseBody' export * from './WebSocket/WebSocketConnectionTokenResponse' export * from './WebSocket/WebSocketConnectionTokenResponseBody' -export * from './Workspace/WorkspaceCreationResponse' -export * from './Workspace/WorkspaceCreationResponseBody' -export * from './Workspace/WorkspaceInvitationAcceptingResponse' -export * from './Workspace/WorkspaceInvitationAcceptingResponseBody' -export * from './Workspace/WorkspaceKeyshareInitiatingResponse' -export * from './Workspace/WorkspaceKeyshareInitiatingResponseBody' -export * from './Workspace/WorkspaceInvitationResponse' -export * from './Workspace/WorkspaceInvitationResponseBody' -export * from './Workspace/WorkspaceListResponse' -export * from './Workspace/WorkspaceListResponseBody' -export * from './Workspace/WorkspaceUserListResponse' -export * from './Workspace/WorkspaceUserListResponseBody' diff --git a/packages/api/src/Domain/Server/Workspace/Paths.ts b/packages/api/src/Domain/Server/Workspace/Paths.ts deleted file mode 100644 index 7f766f941..000000000 --- a/packages/api/src/Domain/Server/Workspace/Paths.ts +++ /dev/null @@ -1,15 +0,0 @@ -const WorkspacePaths = { - createWorkspace: '/v1/workspaces', - listWorkspaces: '/v1/workspaces', - listWorkspaceUsers: (uuid: string) => `/v1/workspaces/${uuid}/users`, - initiateKeyshare: (worksapceUuid: string, userUuid: string) => - `/v1/workspaces/${worksapceUuid}/users/${userUuid}/keyshare`, - inviteToWorkspace: (uuid: string) => `/v1/workspaces/${uuid}/invites`, - acceptInvite: (uuid: string) => `/v1/invites/${uuid}/accept`, -} - -export const Paths = { - v1: { - ...WorkspacePaths, - }, -} diff --git a/packages/api/src/Domain/Server/Workspace/WorkspaceServer.ts b/packages/api/src/Domain/Server/Workspace/WorkspaceServer.ts deleted file mode 100644 index 30d1b2867..000000000 --- a/packages/api/src/Domain/Server/Workspace/WorkspaceServer.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { HttpServiceInterface } from '../../Http/HttpServiceInterface' -import { WorkspaceInvitationRequestParams } from '../../Request/Workspace/WorkspaceInvitationRequestParams' -import { WorkspaceCreationRequestParams } from '../../Request/Workspace/WorkspaceCreationRequestParams' -import { WorkspaceInvitationResponse } from '../../Response/Workspace/WorkspaceInvitationResponse' -import { WorkspaceCreationResponse } from '../../Response/Workspace/WorkspaceCreationResponse' -import { WorkspaceInvitationAcceptingRequestParams } from '../../Request/Workspace/WorkspaceInvitationAcceptingRequestParams' -import { WorkspaceInvitationAcceptingResponse } from '../../Response/Workspace/WorkspaceInvitationAcceptingResponse' -import { WorkspaceListRequestParams } from '../../Request/Workspace/WorkspaceListRequestParams' -import { WorkspaceListResponse } from '../../Response/Workspace/WorkspaceListResponse' -import { WorkspaceUserListRequestParams } from '../../Request/Workspace/WorkspaceUserListRequestParams' -import { WorkspaceUserListResponse } from '../../Response/Workspace/WorkspaceUserListResponse' -import { WorkspaceKeyshareInitiatingRequestParams } from '../../Request/Workspace/WorkspaceKeyshareInitiatingRequestParams' -import { WorkspaceKeyshareInitiatingResponse } from '../../Response/Workspace/WorkspaceKeyshareInitiatingResponse' - -import { Paths } from './Paths' -import { WorkspaceServerInterface } from './WorkspaceServerInterface' - -export class WorkspaceServer implements WorkspaceServerInterface { - constructor(private httpService: HttpServiceInterface) {} - - async initiateKeyshare( - params: WorkspaceKeyshareInitiatingRequestParams, - ): Promise { - const response = await this.httpService.post( - Paths.v1.initiateKeyshare(params.workspaceUuid, params.userUuid), - params, - ) - - return response as WorkspaceKeyshareInitiatingResponse - } - - async listWorkspaceUsers(params: WorkspaceUserListRequestParams): Promise { - const response = await this.httpService.get(Paths.v1.listWorkspaceUsers(params.workspaceUuid), params) - - return response as WorkspaceUserListResponse - } - - async listWorkspaces(params: WorkspaceListRequestParams): Promise { - const response = await this.httpService.get(Paths.v1.listWorkspaces, params) - - return response as WorkspaceListResponse - } - - async acceptInvite(params: WorkspaceInvitationAcceptingRequestParams): Promise { - const response = await this.httpService.post(Paths.v1.acceptInvite(params.inviteUuid), params) - - return response as WorkspaceInvitationAcceptingResponse - } - - async inviteToWorkspace(params: WorkspaceInvitationRequestParams): Promise { - const response = await this.httpService.post(Paths.v1.inviteToWorkspace(params.workspaceUuid), params) - - return response as WorkspaceInvitationResponse - } - - async createWorkspace(params: WorkspaceCreationRequestParams): Promise { - const response = await this.httpService.post(Paths.v1.createWorkspace, params) - - return response as WorkspaceCreationResponse - } -} diff --git a/packages/api/src/Domain/Server/Workspace/WorkspaceServerInterface.ts b/packages/api/src/Domain/Server/Workspace/WorkspaceServerInterface.ts deleted file mode 100644 index d39a83431..000000000 --- a/packages/api/src/Domain/Server/Workspace/WorkspaceServerInterface.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { WorkspaceInvitationRequestParams } from '../../Request/Workspace/WorkspaceInvitationRequestParams' -import { WorkspaceCreationRequestParams } from '../../Request/Workspace/WorkspaceCreationRequestParams' -import { WorkspaceInvitationResponse } from '../../Response/Workspace/WorkspaceInvitationResponse' -import { WorkspaceCreationResponse } from '../../Response/Workspace/WorkspaceCreationResponse' -import { WorkspaceInvitationAcceptingRequestParams } from '../../Request/Workspace/WorkspaceInvitationAcceptingRequestParams' -import { WorkspaceInvitationAcceptingResponse } from '../../Response/Workspace/WorkspaceInvitationAcceptingResponse' -import { WorkspaceListRequestParams } from '../../Request/Workspace/WorkspaceListRequestParams' -import { WorkspaceListResponse } from '../../Response/Workspace/WorkspaceListResponse' -import { WorkspaceUserListRequestParams } from '../../Request/Workspace/WorkspaceUserListRequestParams' -import { WorkspaceUserListResponse } from '../../Response/Workspace/WorkspaceUserListResponse' -import { WorkspaceKeyshareInitiatingRequestParams } from '../../Request/Workspace/WorkspaceKeyshareInitiatingRequestParams' -import { WorkspaceKeyshareInitiatingResponse } from '../../Response/Workspace/WorkspaceKeyshareInitiatingResponse' - -export interface WorkspaceServerInterface { - createWorkspace(params: WorkspaceCreationRequestParams): Promise - listWorkspaces(params: WorkspaceListRequestParams): Promise - listWorkspaceUsers(params: WorkspaceUserListRequestParams): Promise - inviteToWorkspace(params: WorkspaceInvitationRequestParams): Promise - acceptInvite(params: WorkspaceInvitationAcceptingRequestParams): Promise - initiateKeyshare(params: WorkspaceKeyshareInitiatingRequestParams): Promise -} diff --git a/packages/api/src/Domain/Server/index.ts b/packages/api/src/Domain/Server/index.ts index d4cbd91fa..f78be2fec 100644 --- a/packages/api/src/Domain/Server/index.ts +++ b/packages/api/src/Domain/Server/index.ts @@ -12,5 +12,3 @@ export * from './UserRequest/UserRequestServer' export * from './UserRequest/UserRequestServerInterface' export * from './WebSocket/WebSocketServer' export * from './WebSocket/WebSocketServerInterface' -export * from './Workspace/WorkspaceServer' -export * from './Workspace/WorkspaceServerInterface' diff --git a/packages/services/src/Domain/Application/ApplicationInterface.ts b/packages/services/src/Domain/Application/ApplicationInterface.ts index 84afe8fdb..32ee1c7c0 100644 --- a/packages/services/src/Domain/Application/ApplicationInterface.ts +++ b/packages/services/src/Domain/Application/ApplicationInterface.ts @@ -9,7 +9,6 @@ import { ApplicationEventCallback } from '../Event/ApplicationEventCallback' import { FeaturesClientInterface } from '../Feature/FeaturesClientInterface' import { SubscriptionClientInterface } from '../Subscription/SubscriptionClientInterface' import { DeviceInterface } from '../Device/DeviceInterface' -import { WorkspaceClientInterface } from '../Workspace/WorkspaceClientInterface' import { ItemsClientInterface } from '../Item/ItemsClientInterface' import { MutatorClientInterface } from '../Mutator/MutatorClientInterface' import { StorageValueModes } from '../Storage/StorageTypes' @@ -51,7 +50,6 @@ export interface ApplicationInterface { get user(): UserClientInterface get files(): FilesClientInterface get subscriptions(): SubscriptionClientInterface - get workspaces(): WorkspaceClientInterface readonly identifier: ApplicationIdentifier readonly platform: Platform deviceInterface: DeviceInterface diff --git a/packages/services/src/Domain/Workspace/WorkspaceClientInterface.ts b/packages/services/src/Domain/Workspace/WorkspaceClientInterface.ts deleted file mode 100644 index 40a2a4199..000000000 --- a/packages/services/src/Domain/Workspace/WorkspaceClientInterface.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { WorkspaceAccessLevel, WorkspaceType } from '@standardnotes/common' -import { Workspace, WorkspaceUser } from '@standardnotes/api' - -export interface WorkspaceClientInterface { - createWorkspace(dto: { - workspaceType: WorkspaceType - encryptedWorkspaceKey?: string - encryptedPrivateKey?: string - publicKey?: string - workspaceName?: string - }): Promise<{ uuid: string } | null> - inviteToWorkspace(dto: { - inviteeEmail: string - workspaceUuid: string - accessLevel: WorkspaceAccessLevel - }): Promise<{ uuid: string } | null> - acceptInvite(dto: { - inviteUuid: string - userUuid: string - publicKey: string - encryptedPrivateKey: string - }): Promise<{ success: boolean }> - listWorkspaces(): Promise<{ ownedWorkspaces: Array; joinedWorkspaces: Array }> - listWorkspaceUsers(dto: { workspaceUuid: string }): Promise<{ users: Array }> - initiateKeyshare(dto: { - workspaceUuid: string - userUuid: string - encryptedWorkspaceKey: string - }): Promise<{ success: boolean }> -} diff --git a/packages/services/src/Domain/Workspace/WorkspaceManager.ts b/packages/services/src/Domain/Workspace/WorkspaceManager.ts deleted file mode 100644 index 8f363694d..000000000 --- a/packages/services/src/Domain/Workspace/WorkspaceManager.ts +++ /dev/null @@ -1,117 +0,0 @@ -import { WorkspaceApiServiceInterface, Workspace, WorkspaceUser } from '@standardnotes/api' -import { WorkspaceAccessLevel, WorkspaceType } from '@standardnotes/common' -import { InternalEventBusInterface } from '../Internal/InternalEventBusInterface' -import { AbstractService } from '../Service/AbstractService' -import { WorkspaceClientInterface } from './WorkspaceClientInterface' - -export class WorkspaceManager extends AbstractService implements WorkspaceClientInterface { - constructor( - private workspaceApiService: WorkspaceApiServiceInterface, - protected override internalEventBus: InternalEventBusInterface, - ) { - super(internalEventBus) - } - - async initiateKeyshare(dto: { - workspaceUuid: string - userUuid: string - encryptedWorkspaceKey: string - }): Promise<{ success: boolean }> { - try { - const result = await this.workspaceApiService.initiateKeyshare(dto) - - if (result.data.error !== undefined) { - return { success: false } - } - - return result.data - } catch (error) { - return { success: false } - } - } - - async listWorkspaceUsers(dto: { workspaceUuid: string }): Promise<{ users: WorkspaceUser[] }> { - try { - const result = await this.workspaceApiService.listWorkspaceUsers(dto) - - if (result.data.error !== undefined) { - return { users: [] } - } - - return result.data - } catch (error) { - return { users: [] } - } - } - - async listWorkspaces(): Promise<{ ownedWorkspaces: Workspace[]; joinedWorkspaces: Workspace[] }> { - try { - const result = await this.workspaceApiService.listWorkspaces() - - if (result.data.error !== undefined) { - return { ownedWorkspaces: [], joinedWorkspaces: [] } - } - - return result.data - } catch (error) { - return { ownedWorkspaces: [], joinedWorkspaces: [] } - } - } - - async acceptInvite(dto: { - inviteUuid: string - userUuid: string - publicKey: string - encryptedPrivateKey: string - }): Promise<{ success: boolean }> { - try { - const result = await this.workspaceApiService.acceptInvite(dto) - - if (result.data.error !== undefined) { - return { success: false } - } - - return result.data - } catch (error) { - return { success: false } - } - } - - async inviteToWorkspace(dto: { - inviteeEmail: string - workspaceUuid: string - accessLevel: WorkspaceAccessLevel - }): Promise<{ uuid: string } | null> { - try { - const result = await this.workspaceApiService.inviteToWorkspace(dto) - - if (result.data.error !== undefined) { - return null - } - - return result.data - } catch (error) { - return null - } - } - - async createWorkspace(dto: { - workspaceType: WorkspaceType - encryptedWorkspaceKey?: string - encryptedPrivateKey?: string - publicKey?: string - workspaceName?: string - }): Promise<{ uuid: string } | null> { - try { - const result = await this.workspaceApiService.createWorkspace(dto) - - if (result.data.error !== undefined) { - return null - } - - return result.data - } catch (error) { - return null - } - } -} diff --git a/packages/services/src/Domain/index.ts b/packages/services/src/Domain/index.ts index fa3574211..7c0cc0d67 100644 --- a/packages/services/src/Domain/index.ts +++ b/packages/services/src/Domain/index.ts @@ -94,5 +94,3 @@ export * from './Sync/SyncServiceInterface' export * from './Sync/SyncSource' export * from './User/UserClientInterface' export * from './User/UserService' -export * from './Workspace/WorkspaceClientInterface' -export * from './Workspace/WorkspaceManager' diff --git a/packages/snjs/lib/Application/Application.ts b/packages/snjs/lib/Application/Application.ts index 78ed3318a..ed641601a 100644 --- a/packages/snjs/lib/Application/Application.ts +++ b/packages/snjs/lib/Application/Application.ts @@ -22,10 +22,6 @@ import { WebSocketApiServiceInterface, WebSocketServer, WebSocketServerInterface, - WorkspaceApiService, - WorkspaceApiServiceInterface, - WorkspaceServer, - WorkspaceServerInterface, } from '@standardnotes/api' import * as Common from '@standardnotes/common' import * as ExternalServices from '@standardnotes/services' @@ -57,8 +53,6 @@ import { FileService, SubscriptionClientInterface, SubscriptionManager, - WorkspaceClientInterface, - WorkspaceManager, ChallengePrompt, Challenge, ErrorAlertStrings, @@ -155,9 +149,6 @@ export class SNApplication implements ApplicationInterface, AppGroupManagedAppli private declare subscriptionApiService: SubscriptionApiServiceInterface private declare subscriptionServer: SubscriptionServerInterface private declare subscriptionManager: SubscriptionClientInterface - private declare workspaceApiService: WorkspaceApiServiceInterface - private declare workspaceServer: WorkspaceServerInterface - private declare workspaceManager: WorkspaceClientInterface private declare webSocketApiService: WebSocketApiServiceInterface private declare webSocketServer: WebSocketServerInterface private sessionManager!: InternalServices.SNSessionManager @@ -275,10 +266,6 @@ export class SNApplication implements ApplicationInterface, AppGroupManagedAppli return this.subscriptionManager } - get workspaces(): ExternalServices.WorkspaceClientInterface { - return this.workspaceManager - } - get signInWithRecoveryCodes(): UseCaseInterface { return this._signInWithRecoveryCodes } @@ -1184,9 +1171,6 @@ export class SNApplication implements ApplicationInterface, AppGroupManagedAppli this.createWebSocketServer() this.createWebSocketApiService() this.createSubscriptionManager() - this.createWorkspaceServer() - this.createWorkspaceApiService() - this.createWorkspaceManager() this.createWebSocketsService() this.createSessionManager() this.createHistoryManager() @@ -1235,9 +1219,6 @@ export class SNApplication implements ApplicationInterface, AppGroupManagedAppli ;(this.subscriptionApiService as unknown) = undefined ;(this.subscriptionServer as unknown) = undefined ;(this.subscriptionManager as unknown) = undefined - ;(this.workspaceApiService as unknown) = undefined - ;(this.workspaceServer as unknown) = undefined - ;(this.workspaceManager as unknown) = undefined ;(this.webSocketApiService as unknown) = undefined ;(this.webSocketServer as unknown) = undefined ;(this.sessionManager as unknown) = undefined @@ -1484,18 +1465,6 @@ export class SNApplication implements ApplicationInterface, AppGroupManagedAppli this.subscriptionManager = new SubscriptionManager(this.subscriptionApiService, this.internalEventBus) } - private createWorkspaceServer() { - this.workspaceServer = new WorkspaceServer(this.httpService) - } - - private createWorkspaceApiService() { - this.workspaceApiService = new WorkspaceApiService(this.workspaceServer) - } - - private createWorkspaceManager() { - this.workspaceManager = new WorkspaceManager(this.workspaceApiService, this.internalEventBus) - } - private createItemManager() { this.itemManager = new InternalServices.ItemManager(this.payloadManager, this.internalEventBus) this.services.push(this.itemManager) diff --git a/packages/snjs/mocha/test.html b/packages/snjs/mocha/test.html index bcc21aa49..826cca630 100644 --- a/packages/snjs/mocha/test.html +++ b/packages/snjs/mocha/test.html @@ -88,7 +88,6 @@ -