internal: incomplete vault systems behind feature flag (#2340)

This commit is contained in:
Mo
2023-06-30 09:01:56 -05:00
committed by GitHub
parent d16e401bb9
commit b032eb9c9b
638 changed files with 20321 additions and 4813 deletions

View File

@@ -0,0 +1,41 @@
import { HttpResponse } from '@standardnotes/responses'
import { HttpServiceInterface } from '../../Http'
import { CreateAsymmetricMessageParams } from '../../Request/AsymmetricMessage/CreateAsymmetricMessageParams'
import { CreateAsymmetricMessageResponse } from '../../Response/AsymmetricMessage/CreateAsymmetricMessageResponse'
import { AsymmetricMessagesPaths } from './Paths'
import { GetUserAsymmetricMessagesResponse } from '../../Response/AsymmetricMessage/GetUserAsymmetricMessagesResponse'
import { AsymmetricMessageServerInterface } from './AsymmetricMessageServerInterface'
import { DeleteAsymmetricMessageRequestParams } from '../../Request/AsymmetricMessage/DeleteAsymmetricMessageRequestParams'
import { DeleteAsymmetricMessageResponse } from '../../Response/AsymmetricMessage/DeleteAsymmetricMessageResponse'
export class AsymmetricMessageServer implements AsymmetricMessageServerInterface {
constructor(private httpService: HttpServiceInterface) {}
createMessage(params: CreateAsymmetricMessageParams): Promise<HttpResponse<CreateAsymmetricMessageResponse>> {
return this.httpService.post(AsymmetricMessagesPaths.createMessage, {
recipient_uuid: params.recipientUuid,
encrypted_message: params.encryptedMessage,
replaceability_identifier: params.replaceabilityIdentifier,
})
}
getInboundUserMessages(): Promise<HttpResponse<GetUserAsymmetricMessagesResponse>> {
return this.httpService.get(AsymmetricMessagesPaths.getInboundUserMessages())
}
getOutboundUserMessages(): Promise<HttpResponse<GetUserAsymmetricMessagesResponse>> {
return this.httpService.get(AsymmetricMessagesPaths.getOutboundUserMessages())
}
getMessages(): Promise<HttpResponse<GetUserAsymmetricMessagesResponse>> {
return this.httpService.get(AsymmetricMessagesPaths.getMessages)
}
deleteMessage(params: DeleteAsymmetricMessageRequestParams): Promise<HttpResponse<DeleteAsymmetricMessageResponse>> {
return this.httpService.delete(AsymmetricMessagesPaths.deleteMessage(params.messageUuid))
}
deleteAllInboundMessages(): Promise<HttpResponse<{ success: boolean }>> {
return this.httpService.delete(AsymmetricMessagesPaths.deleteAllInboundMessages)
}
}

View File

@@ -0,0 +1,17 @@
import { HttpResponse } from '@standardnotes/responses'
import { CreateAsymmetricMessageParams } from '../../Request/AsymmetricMessage/CreateAsymmetricMessageParams'
import { CreateAsymmetricMessageResponse } from '../../Response/AsymmetricMessage/CreateAsymmetricMessageResponse'
import { GetUserAsymmetricMessagesResponse } from '../../Response/AsymmetricMessage/GetUserAsymmetricMessagesResponse'
import { DeleteAsymmetricMessageRequestParams } from '../../Request/AsymmetricMessage/DeleteAsymmetricMessageRequestParams'
import { DeleteAsymmetricMessageResponse } from '../../Response/AsymmetricMessage/DeleteAsymmetricMessageResponse'
export interface AsymmetricMessageServerInterface {
createMessage(params: CreateAsymmetricMessageParams): Promise<HttpResponse<CreateAsymmetricMessageResponse>>
getInboundUserMessages(): Promise<HttpResponse<GetUserAsymmetricMessagesResponse>>
getOutboundUserMessages(): Promise<HttpResponse<GetUserAsymmetricMessagesResponse>>
getMessages(): Promise<HttpResponse<GetUserAsymmetricMessagesResponse>>
deleteMessage(params: DeleteAsymmetricMessageRequestParams): Promise<HttpResponse<DeleteAsymmetricMessageResponse>>
deleteAllInboundMessages(): Promise<HttpResponse<{ success: boolean }>>
}

View File

@@ -0,0 +1,9 @@
export const AsymmetricMessagesPaths = {
createMessage: '/v1/asymmetric-messages',
getMessages: '/v1/asymmetric-messages',
updateMessage: (messageUuid: string) => `/v1/asymmetric-messages/${messageUuid}`,
getInboundUserMessages: () => '/v1/asymmetric-messages',
getOutboundUserMessages: () => '/v1/asymmetric-messages/outbound',
deleteMessage: (messageUuid: string) => `/v1/asymmetric-messages/${messageUuid}`,
deleteAllInboundMessages: '/v1/asymmetric-messages/inbound',
}

View File

@@ -0,0 +1,7 @@
export const SharedVaultsPaths = {
getSharedVaults: '/v1/shared-vaults',
createSharedVault: '/v1/shared-vaults',
deleteSharedVault: (sharedVaultUuid: string) => `/v1/shared-vaults/${sharedVaultUuid}`,
updateSharedVault: (sharedVaultUuid: string) => `/v1/shared-vaults/${sharedVaultUuid}`,
createSharedVaultFileValetToken: (sharedVaultUuid: string) => `/v1/shared-vaults/${sharedVaultUuid}/valet-tokens`,
}

View File

@@ -0,0 +1,37 @@
import { HttpResponse } from '@standardnotes/responses'
import { HttpServiceInterface } from '../../Http'
import { SharedVaultServerInterface } from './SharedVaultServerInterface'
import { SharedVaultsPaths } from './Paths'
import { CreateSharedVaultResponse } from '../../Response/SharedVault/CreateSharedVaultResponse'
import { GetSharedVaultsResponse } from '../../Response/SharedVault/GetSharedVaultsResponse'
import { CreateSharedVaultValetTokenResponse } from '../../Response/SharedVault/CreateSharedVaultValetTokenResponse'
import { CreateSharedVaultValetTokenParams } from '../../Request/SharedVault/CreateSharedVaultValetTokenParams'
export class SharedVaultServer implements SharedVaultServerInterface {
constructor(private httpService: HttpServiceInterface) {}
getSharedVaults(): Promise<HttpResponse<GetSharedVaultsResponse>> {
return this.httpService.get(SharedVaultsPaths.getSharedVaults)
}
createSharedVault(): Promise<HttpResponse<CreateSharedVaultResponse>> {
return this.httpService.post(SharedVaultsPaths.createSharedVault)
}
deleteSharedVault(params: { sharedVaultUuid: string }): Promise<HttpResponse<boolean>> {
return this.httpService.delete(SharedVaultsPaths.deleteSharedVault(params.sharedVaultUuid))
}
createSharedVaultFileValetToken(
params: CreateSharedVaultValetTokenParams,
): Promise<HttpResponse<CreateSharedVaultValetTokenResponse>> {
return this.httpService.post(SharedVaultsPaths.createSharedVaultFileValetToken(params.sharedVaultUuid), {
file_uuid: params.fileUuid,
remote_identifier: params.remoteIdentifier,
operation: params.operation,
unencrypted_file_size: params.unencryptedFileSize,
move_operation_type: params.moveOperationType,
shared_vault_to_shared_vault_move_target_uuid: params.sharedVaultToSharedVaultMoveTargetUuid,
})
}
}

View File

@@ -0,0 +1,17 @@
import { HttpResponse } from '@standardnotes/responses'
import { CreateSharedVaultResponse } from '../../Response/SharedVault/CreateSharedVaultResponse'
import { GetSharedVaultsResponse } from '../../Response/SharedVault/GetSharedVaultsResponse'
import { CreateSharedVaultValetTokenResponse } from '../../Response/SharedVault/CreateSharedVaultValetTokenResponse'
import { CreateSharedVaultValetTokenParams } from '../../Request/SharedVault/CreateSharedVaultValetTokenParams'
export interface SharedVaultServerInterface {
getSharedVaults(): Promise<HttpResponse<GetSharedVaultsResponse>>
createSharedVault(): Promise<HttpResponse<CreateSharedVaultResponse>>
deleteSharedVault(params: { sharedVaultUuid: string }): Promise<HttpResponse<boolean>>
createSharedVaultFileValetToken(
params: CreateSharedVaultValetTokenParams,
): Promise<HttpResponse<CreateSharedVaultValetTokenResponse>>
}

View File

@@ -0,0 +1,16 @@
export const SharedVaultInvitesPaths = {
createInvite: (sharedVaultUuid: string) => `/v1/shared-vaults/${sharedVaultUuid}/invites`,
updateInvite: (sharedVaultUuid: string, inviteUuid: string) =>
`/v1/shared-vaults/${sharedVaultUuid}/invites/${inviteUuid}`,
acceptInvite: (sharedVaultUuid: string, inviteUuid: string) =>
`/v1/shared-vaults/${sharedVaultUuid}/invites/${inviteUuid}/accept`,
declineInvite: (sharedVaultUuid: string, inviteUuid: string) =>
`/v1/shared-vaults/${sharedVaultUuid}/invites/${inviteUuid}/decline`,
getInboundUserInvites: () => '/v1/shared-vaults/invites',
getOutboundUserInvites: () => '/v1/shared-vaults/invites/outbound',
getSharedVaultInvites: (sharedVaultUuid: string) => `/v1/shared-vaults/${sharedVaultUuid}/invites`,
deleteInvite: (sharedVaultUuid: string, inviteUuid: string) =>
`/v1/shared-vaults/${sharedVaultUuid}/invites/${inviteUuid}`,
deleteAllSharedVaultInvites: (sharedVaultUuid: string) => `/v1/shared-vaults/${sharedVaultUuid}/invites`,
deleteAllInboundInvites: '/v1/shared-vaults/invites/inbound',
}

View File

@@ -0,0 +1,75 @@
import { HttpResponse } from '@standardnotes/responses'
import { HttpServiceInterface } from '../../Http'
import { AcceptInviteRequestParams } from '../../Request/SharedVaultInvites/AcceptInviteRequestParams'
import { AcceptInviteResponse } from '../../Response/SharedVaultInvites/AcceptInviteResponse'
import { CreateSharedVaultInviteParams } from '../../Request/SharedVaultInvites/CreateSharedVaultInviteParams'
import { CreateSharedVaultInviteResponse } from '../../Response/SharedVaultInvites/CreateSharedVaultInviteResponse'
import { DeclineInviteRequestParams } from '../../Request/SharedVaultInvites/DeclineInviteRequestParams'
import { DeclineInviteResponse } from '../../Response/SharedVaultInvites/DeclineInviteResponse'
import { DeleteInviteRequestParams } from '../../Request/SharedVaultInvites/DeleteInviteRequestParams'
import { DeleteInviteResponse } from '../../Response/SharedVaultInvites/DeleteInviteResponse'
import { GetSharedVaultInvitesRequestParams } from '../../Request/SharedVaultInvites/GetSharedVaultInvitesRequestParams'
import { GetSharedVaultInvitesResponse } from '../../Response/SharedVaultInvites/GetSharedVaultInvitesResponse'
import { GetUserInvitesResponse } from '../../Response/SharedVaultInvites/GetUserInvitesResponse'
import { SharedVaultInvitesPaths } from './Paths'
import { SharedVaultInvitesServerInterface } from './SharedVaultInvitesServerInterface'
import { UpdateSharedVaultInviteParams } from '../../Request/SharedVaultInvites/UpdateSharedVaultInviteParams'
import { UpdateSharedVaultInviteResponse } from '../../Response/SharedVaultInvites/UpdateSharedVaultInviteResponse'
import { DeleteAllSharedVaultInvitesRequestParams } from '../../Request/SharedVaultInvites/DeleteAllSharedVaultInvitesRequestParams'
import { DeleteAllSharedVaultInvitesResponse } from '../../Response/SharedVaultInvites/DeleteAllSharedVaultInvitesResponse'
export class SharedVaultInvitesServer implements SharedVaultInvitesServerInterface {
constructor(private httpService: HttpServiceInterface) {}
createInvite(params: CreateSharedVaultInviteParams): Promise<HttpResponse<CreateSharedVaultInviteResponse>> {
return this.httpService.post(SharedVaultInvitesPaths.createInvite(params.sharedVaultUuid), {
recipient_uuid: params.recipientUuid,
encrypted_message: params.encryptedMessage,
permissions: params.permissions,
})
}
updateInvite(params: UpdateSharedVaultInviteParams): Promise<HttpResponse<UpdateSharedVaultInviteResponse>> {
return this.httpService.patch(SharedVaultInvitesPaths.updateInvite(params.sharedVaultUuid, params.inviteUuid), {
encrypted_message: params.encryptedMessage,
permissions: params.permissions,
})
}
acceptInvite(params: AcceptInviteRequestParams): Promise<HttpResponse<AcceptInviteResponse>> {
return this.httpService.post(SharedVaultInvitesPaths.acceptInvite(params.sharedVaultUuid, params.inviteUuid))
}
declineInvite(params: DeclineInviteRequestParams): Promise<HttpResponse<DeclineInviteResponse>> {
return this.httpService.post(SharedVaultInvitesPaths.declineInvite(params.sharedVaultUuid, params.inviteUuid))
}
getInboundUserInvites(): Promise<HttpResponse<GetUserInvitesResponse>> {
return this.httpService.get(SharedVaultInvitesPaths.getInboundUserInvites())
}
getOutboundUserInvites(): Promise<HttpResponse<GetUserInvitesResponse>> {
return this.httpService.get(SharedVaultInvitesPaths.getOutboundUserInvites())
}
getSharedVaultInvites(
params: GetSharedVaultInvitesRequestParams,
): Promise<HttpResponse<GetSharedVaultInvitesResponse>> {
return this.httpService.get(SharedVaultInvitesPaths.getSharedVaultInvites(params.sharedVaultUuid))
}
deleteInvite(params: DeleteInviteRequestParams): Promise<HttpResponse<DeleteInviteResponse>> {
return this.httpService.delete(SharedVaultInvitesPaths.deleteInvite(params.sharedVaultUuid, params.inviteUuid))
}
deleteAllSharedVaultInvites(
params: DeleteAllSharedVaultInvitesRequestParams,
): Promise<HttpResponse<DeleteAllSharedVaultInvitesResponse>> {
return this.httpService.delete(SharedVaultInvitesPaths.deleteAllSharedVaultInvites(params.sharedVaultUuid))
}
deleteAllInboundInvites(): Promise<HttpResponse<{ success: boolean }>> {
return this.httpService.delete(SharedVaultInvitesPaths.deleteAllInboundInvites)
}
}

View File

@@ -0,0 +1,35 @@
import { HttpResponse } from '@standardnotes/responses'
import { AcceptInviteRequestParams } from '../../Request/SharedVaultInvites/AcceptInviteRequestParams'
import { AcceptInviteResponse } from '../../Response/SharedVaultInvites/AcceptInviteResponse'
import { CreateSharedVaultInviteParams } from '../../Request/SharedVaultInvites/CreateSharedVaultInviteParams'
import { CreateSharedVaultInviteResponse } from '../../Response/SharedVaultInvites/CreateSharedVaultInviteResponse'
import { DeclineInviteRequestParams } from '../../Request/SharedVaultInvites/DeclineInviteRequestParams'
import { DeclineInviteResponse } from '../../Response/SharedVaultInvites/DeclineInviteResponse'
import { DeleteInviteRequestParams } from '../../Request/SharedVaultInvites/DeleteInviteRequestParams'
import { DeleteInviteResponse } from '../../Response/SharedVaultInvites/DeleteInviteResponse'
import { GetSharedVaultInvitesRequestParams } from '../../Request/SharedVaultInvites/GetSharedVaultInvitesRequestParams'
import { GetSharedVaultInvitesResponse } from '../../Response/SharedVaultInvites/GetSharedVaultInvitesResponse'
import { GetUserInvitesResponse } from '../../Response/SharedVaultInvites/GetUserInvitesResponse'
import { UpdateSharedVaultInviteParams } from '../../Request/SharedVaultInvites/UpdateSharedVaultInviteParams'
import { UpdateSharedVaultInviteResponse } from '../../Response/SharedVaultInvites/UpdateSharedVaultInviteResponse'
import { DeleteAllSharedVaultInvitesRequestParams } from '../../Request/SharedVaultInvites/DeleteAllSharedVaultInvitesRequestParams'
import { DeleteAllSharedVaultInvitesResponse } from '../../Response/SharedVaultInvites/DeleteAllSharedVaultInvitesResponse'
export interface SharedVaultInvitesServerInterface {
createInvite(params: CreateSharedVaultInviteParams): Promise<HttpResponse<CreateSharedVaultInviteResponse>>
updateInvite(params: UpdateSharedVaultInviteParams): Promise<HttpResponse<UpdateSharedVaultInviteResponse>>
acceptInvite(params: AcceptInviteRequestParams): Promise<HttpResponse<AcceptInviteResponse>>
declineInvite(params: DeclineInviteRequestParams): Promise<HttpResponse<DeclineInviteResponse>>
getInboundUserInvites(): Promise<HttpResponse<GetUserInvitesResponse>>
getOutboundUserInvites(): Promise<HttpResponse<GetUserInvitesResponse>>
getSharedVaultInvites(
params: GetSharedVaultInvitesRequestParams,
): Promise<HttpResponse<GetSharedVaultInvitesResponse>>
deleteAllSharedVaultInvites(
params: DeleteAllSharedVaultInvitesRequestParams,
): Promise<HttpResponse<DeleteAllSharedVaultInvitesResponse>>
deleteInvite(params: DeleteInviteRequestParams): Promise<HttpResponse<DeleteInviteResponse>>
deleteAllInboundInvites(): Promise<HttpResponse<{ success: boolean }>>
}

View File

@@ -0,0 +1,5 @@
export const SharedVaultUsersPaths = {
getSharedVaultUsers: (sharedVaultUuid: string) => `/v1/shared-vaults/${sharedVaultUuid}/users`,
deleteSharedVaultUser: (sharedVaultUuid: string, userUuid: string) =>
`/v1/shared-vaults/${sharedVaultUuid}/users/${userUuid}`,
}

View File

@@ -0,0 +1,22 @@
import { HttpResponse } from '@standardnotes/responses'
import { HttpServiceInterface } from '../../Http'
import { GetSharedVaultUsersRequestParams } from '../../Request/SharedVaultUser/GetSharedVaultUsersRequestParams'
import { DeleteSharedVaultUserRequestParams } from '../../Request/SharedVaultUser/DeleteSharedVaultUserRequestParams'
import { DeleteSharedVaultUserResponse } from '../../Response/SharedVaultUsers/DeleteSharedVaultUserResponse'
import { SharedVaultUsersServerInterface } from './SharedVaultUsersServerInterface'
import { SharedVaultUsersPaths } from './Paths'
import { GetSharedVaultUsersResponse } from '../../Response/SharedVaultUsers/GetSharedVaultUsersResponse'
export class SharedVaultUsersServer implements SharedVaultUsersServerInterface {
constructor(private httpService: HttpServiceInterface) {}
getSharedVaultUsers(params: GetSharedVaultUsersRequestParams): Promise<HttpResponse<GetSharedVaultUsersResponse>> {
return this.httpService.get(SharedVaultUsersPaths.getSharedVaultUsers(params.sharedVaultUuid))
}
deleteSharedVaultUser(
params: DeleteSharedVaultUserRequestParams,
): Promise<HttpResponse<DeleteSharedVaultUserResponse>> {
return this.httpService.delete(SharedVaultUsersPaths.deleteSharedVaultUser(params.sharedVaultUuid, params.userUuid))
}
}

View File

@@ -0,0 +1,13 @@
import { HttpResponse } from '@standardnotes/responses'
import { GetSharedVaultUsersRequestParams } from '../../Request/SharedVaultUser/GetSharedVaultUsersRequestParams'
import { DeleteSharedVaultUserRequestParams } from '../../Request/SharedVaultUser/DeleteSharedVaultUserRequestParams'
import { DeleteSharedVaultUserResponse } from '../../Response/SharedVaultUsers/DeleteSharedVaultUserResponse'
import { GetSharedVaultUsersResponse } from '../../Response/SharedVaultUsers/GetSharedVaultUsersResponse'
export interface SharedVaultUsersServerInterface {
getSharedVaultUsers(params: GetSharedVaultUsersRequestParams): Promise<HttpResponse<GetSharedVaultUsersResponse>>
deleteSharedVaultUser(
params: DeleteSharedVaultUserRequestParams,
): Promise<HttpResponse<DeleteSharedVaultUserResponse>>
}

View File

@@ -1,5 +1,6 @@
const UserPaths = {
register: '/v1/users',
updateAccount: (userUuid: string) => `/v1/users/${userUuid}`,
deleteAccount: (userUuid: string) => `/v1/users/${userUuid}`,
}

View File

@@ -1,3 +1,4 @@
import { UserUpdateResponse } from './../../Response/User/UserUpdateResponse'
import { HttpServiceInterface } from '../../Http/HttpServiceInterface'
import { UserDeletionRequestParams } from '../../Request/User/UserDeletionRequestParams'
import { UserRegistrationRequestParams } from '../../Request/User/UserRegistrationRequestParams'
@@ -6,6 +7,7 @@ import { UserDeletionResponseBody } from '../../Response/User/UserDeletionRespon
import { UserRegistrationResponseBody } from '../../Response/User/UserRegistrationResponseBody'
import { Paths } from './Paths'
import { UserServerInterface } from './UserServerInterface'
import { UserUpdateRequestParams } from '../../Request/User/UserUpdateRequestParams'
export class UserServer implements UserServerInterface {
constructor(private httpService: HttpServiceInterface) {}
@@ -17,4 +19,8 @@ export class UserServer implements UserServerInterface {
async register(params: UserRegistrationRequestParams): Promise<HttpResponse<UserRegistrationResponseBody>> {
return this.httpService.post(Paths.v1.register, params)
}
async update(params: UserUpdateRequestParams): Promise<HttpResponse<UserUpdateResponse>> {
return this.httpService.patch(Paths.v1.updateAccount(params.user_uuid), params)
}
}

View File

@@ -3,8 +3,11 @@ import { UserDeletionRequestParams } from '../../Request/User/UserDeletionReques
import { UserRegistrationRequestParams } from '../../Request/User/UserRegistrationRequestParams'
import { UserDeletionResponseBody } from '../../Response/User/UserDeletionResponseBody'
import { UserRegistrationResponseBody } from '../../Response/User/UserRegistrationResponseBody'
import { UserUpdateResponse } from '../../Response/User/UserUpdateResponse'
import { UserUpdateRequestParams } from '../../Request/User/UserUpdateRequestParams'
export interface UserServerInterface {
register(params: UserRegistrationRequestParams): Promise<HttpResponse<UserRegistrationResponseBody>>
deleteAccount(params: UserDeletionRequestParams): Promise<HttpResponse<UserDeletionResponseBody>>
update(params: UserUpdateRequestParams): Promise<HttpResponse<UserUpdateResponse>>
}

View File

@@ -1,14 +1,32 @@
export * from './Auth/AuthServer'
export * from './Auth/AuthServerInterface'
export * from './Authenticator/AuthenticatorServer'
export * from './Authenticator/AuthenticatorServerInterface'
export * from './Revision/RevisionServer'
export * from './Revision/RevisionServerInterface'
export * from './AsymmetricMessage/AsymmetricMessageServer'
export * from './AsymmetricMessage/AsymmetricMessageServerInterface'
export * from './SharedVault/SharedVaultServer'
export * from './SharedVault/SharedVaultServerInterface'
export * from './SharedVaultUsers/SharedVaultUsersServer'
export * from './SharedVaultUsers/SharedVaultUsersServerInterface'
export * from './Subscription/SubscriptionServer'
export * from './Subscription/SubscriptionServerInterface'
export * from './SharedVaultInvites/SharedVaultInvitesServer'
export * from './SharedVaultInvites/SharedVaultInvitesServerInterface'
export * from './User/UserServer'
export * from './User/UserServerInterface'
export * from './UserRequest/UserRequestServer'
export * from './UserRequest/UserRequestServerInterface'
export * from './WebSocket/WebSocketServer'
export * from './WebSocket/WebSocketServerInterface'