mirror of
https://github.com/standardnotes/server
synced 2026-10-16 18:13:09 -04:00
29 lines
962 B
TypeScript
29 lines
962 B
TypeScript
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
|
|
}
|
|
|
|
private constructor(props: SharedVaultUserPermissionProps) {
|
|
super(props)
|
|
}
|
|
|
|
static create(sharedVaultUserPermission: string): Result<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 }))
|
|
}
|
|
}
|
|
}
|