Merge branch 'feat/inda-383-daily-stat' into 'main'
[ProtonMail-WebClient.git] / packages / docs-core / lib / UseCase / CreateRealtimeValetToken.ts
blob3982ecde14bca39c62acbcd08f3fc4725774156d
1 import type { NodeMeta, PublicNodeMeta } from '@proton/drive-store'
2 import { ApiResult, type RealtimeUrlAndToken } from '@proton/docs-shared'
3 import type { DocsApi } from '../Api/DocsApi'
5 export class GetRealtimeUrlAndToken {
6   constructor(private docsApi: DocsApi) {}
8   async execute(lookup: NodeMeta | PublicNodeMeta, commitId?: string): Promise<ApiResult<RealtimeUrlAndToken>> {
9     const result = await this.docsApi.createRealtimeValetToken(lookup, commitId)
11     if (result.isFailed()) {
12       return ApiResult.fail(result.getError())
13     }
15     const value = result.getValue().ValetToken
17     return ApiResult.ok({
18       token: value.Token,
19       preferences: {
20         includeDocumentNameInEmails: value.Preferences.find((p) => p.Name === 'IncludeDocumentName')?.Value ?? false,
21       },
22     })
23   }