Use same lock values as mobile clients
[ProtonMail-WebClient.git] / packages / docs-core / lib / UseCase / CreateRealtimeValetToken.ts
blobb18547b4a6bcb88ac87681fc8b6ff22e3bf7e1d2
1 import type { NodeMeta } from '@proton/drive-store'
2 import type { RealtimeUrlAndToken } from '@proton/docs-shared'
3 import { ApiResult } from '../Domain/Result/ApiResult'
4 import type { DocsApi } from '../Api/DocsApi'
6 export class GetRealtimeUrlAndToken {
7   constructor(private docsApi: DocsApi) {}
9   async execute(lookup: NodeMeta, commitId?: string): Promise<ApiResult<RealtimeUrlAndToken>> {
10     const result = await this.docsApi.createRealtimeValetToken(lookup, commitId)
12     if (result.isFailed()) {
13       return ApiResult.fail(result.getError())
14     }
16     const value = result.getValue().ValetToken
18     return ApiResult.ok({
19       token: value.Token,
20     })
21   }