Files
standardnotes-server/packages/syncing-server/src/Domain/UseCase/GetSharedVaultInvitesSentToUser/GetSharedVaultInvitesSentToUser.ts
T
72310130d2 feat: shared vault invites controller and use cases (#647)
* feat: get shared vault invites sent by user.

Co-authored-by: Mo <[email protected]>

* feat: shared vault invites controller.

Co-authored-by: Mo <[email protected]>

---------

Co-authored-by: Mo <[email protected]>
2023-07-07 13:39:43 +02:00

19 lines
951 B
TypeScript

import { Result, UseCaseInterface, Uuid } from '@standardnotes/domain-core'
import { SharedVaultInvite } from '../../SharedVault/User/Invite/SharedVaultInvite'
import { GetSharedVaultInvitesSentToUserDTO } from './GetSharedVaultInvitesSentToUserDTO'
import { SharedVaultInviteRepositoryInterface } from '../../SharedVault/User/Invite/SharedVaultInviteRepositoryInterface'
export class GetSharedVaultInvitesSentToUser implements UseCaseInterface<SharedVaultInvite[]> {
constructor(private sharedVaultInviteRepository: SharedVaultInviteRepositoryInterface) {}
async execute(dto: GetSharedVaultInvitesSentToUserDTO): Promise<Result<SharedVaultInvite[]>> {
const userUuidOrError = Uuid.create(dto.userUuid)
if (userUuidOrError.isFailed()) {
return Result.fail(userUuidOrError.getError())
}
const userUuid = userUuidOrError.getValue()
return Result.ok(await this.sharedVaultInviteRepository.findByUserUuid(userUuid))
}
}