feat: add creating shared vault file valet tokens. (#635)

Co-authored-by: Mo <[email protected]>
This commit is contained in:
Karol Sójko
2023-07-03 18:43:32 +02:00
committed by GitHub
co-authored by Mo
parent bf84be0136
commit 04b3bb034f
7 changed files with 531 additions and 3 deletions
@@ -3,6 +3,12 @@ import { Result, ValueObject } from '@standardnotes/domain-core'
import { SharedVaultUserPermissionProps } from './SharedVaultUserPermissionProps'
export class SharedVaultUserPermission extends ValueObject<SharedVaultUserPermissionProps> {
static readonly PERMISSIONS = {
Read: 'read',
Write: 'write',
Admin: 'admin',
}
get value(): string {
return this.props.value
}
@@ -12,7 +18,8 @@ export class SharedVaultUserPermission extends ValueObject<SharedVaultUserPermis
}
static create(sharedVaultUserPermission: string): Result<SharedVaultUserPermission> {
if (!['read', 'write', 'admin'].includes(sharedVaultUserPermission)) {
const isValidPermission = Object.values(this.PERMISSIONS).includes(sharedVaultUserPermission)
if (!isValidPermission) {
return Result.fail<SharedVaultUserPermission>(`Invalid shared vault user permission ${sharedVaultUserPermission}`)
} else {
return Result.ok<SharedVaultUserPermission>(new SharedVaultUserPermission({ value: sharedVaultUserPermission }))
@@ -6,4 +6,5 @@ export interface SharedVaultUserRepositoryInterface {
findByUuid(sharedVaultUserUuid: Uuid): Promise<SharedVaultUser | null>
save(sharedVaultUser: SharedVaultUser): Promise<void>
remove(sharedVault: SharedVaultUser): Promise<void>
findByUserUuidAndSharedVaultUuid(dto: { userUuid: Uuid; sharedVaultUuid: Uuid }): Promise<SharedVaultUser | null>
}