tests: vaults (#2365)
* tests: signature tests * tests: asymmetric * feat: delete contact use case * chore: lint * chore: lint
This commit is contained in:
@@ -1,16 +1,31 @@
|
||||
import { SharedVaultUserServerHash, isErrorResponse } from '@standardnotes/responses'
|
||||
import { VaultUserCache } from './../VaultUserCache'
|
||||
import { SharedVaultUserServerHash, getErrorFromErrorResponse, isErrorResponse } from '@standardnotes/responses'
|
||||
import { SharedVaultUsersServerInterface } from '@standardnotes/api'
|
||||
import { Result, UseCaseInterface } from '@standardnotes/domain-core'
|
||||
|
||||
export class GetVaultUsers {
|
||||
constructor(private vaultUsersServer: SharedVaultUsersServerInterface) {}
|
||||
export class GetVaultUsers implements UseCaseInterface<SharedVaultUserServerHash[]> {
|
||||
constructor(private vaultUsersServer: SharedVaultUsersServerInterface, private cache: VaultUserCache) {}
|
||||
|
||||
async execute(params: {
|
||||
sharedVaultUuid: string
|
||||
readFromCache: boolean
|
||||
}): Promise<Result<SharedVaultUserServerHash[]>> {
|
||||
if (params.readFromCache) {
|
||||
const cachedUsers = this.cache.get(params.sharedVaultUuid)
|
||||
|
||||
if (cachedUsers) {
|
||||
return Result.ok(cachedUsers)
|
||||
}
|
||||
}
|
||||
|
||||
async execute(params: { sharedVaultUuid: string }): Promise<SharedVaultUserServerHash[] | undefined> {
|
||||
const response = await this.vaultUsersServer.getSharedVaultUsers({ sharedVaultUuid: params.sharedVaultUuid })
|
||||
|
||||
if (isErrorResponse(response)) {
|
||||
return undefined
|
||||
return Result.fail(getErrorFromErrorResponse(response).message)
|
||||
}
|
||||
|
||||
return response.data.users
|
||||
this.cache.set(params.sharedVaultUuid, response.data.users)
|
||||
|
||||
return Result.ok(response.data.users)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user