1 import type { CommentThreadType, CommonPrivateCommentData, CreatePrivateCommentData } from '../Types/Comments'
2 import { DocsApiRouteBuilder } from './DocsApiRouteBuilder'
3 import type { DocsRoute } from './DocsRoute'
6 * For private authenticated routes.
8 export class DocsApiPrivateRouteBuilder extends DocsApiRouteBuilder {
9 constructor(params: { volumeId: string; linkId: string }) {
10 super(`docs/volumes/${params.volumeId}/documents/${params.linkId}`)
16 url: `${this.basePath}/meta`,
21 commit(params: { commitId: string }): DocsRoute {
24 url: `${this.basePath}/commits/${params.commitId}`,
30 seedInitialCommit(params: { data: Uint8Array }): DocsRoute {
33 url: `${this.basePath}/seed-initial-commit`,
39 lock(params: { fetchCommitId?: string }): DocsRoute {
42 url: `${this.basePath}/lock`,
43 data: { FetchCommitID: params.fetchCommitId },
49 squashCommit(params: { commitId: string; data: Uint8Array }): DocsRoute {
52 url: `${this.basePath}/commits/${params.commitId}/squash`,
58 createDocument(): DocsRoute {
61 url: `${this.basePath}`,
67 getCommentThreads(): DocsRoute {
70 url: `${this.basePath}/threads`,
74 createThread(params: {
75 data: { Mark: string; Comment: CreatePrivateCommentData; Type: CommentThreadType }
79 url: `${this.basePath}/threads`,
84 deleteThread(params: { threadId: string }): DocsRoute {
87 url: `${this.basePath}/threads/${params.threadId}`,
93 data: CreatePrivateCommentData & { ParentCommentId: string | null }
97 url: `${this.basePath}/threads/${params.threadId}`,
102 getThread(params: { threadId: string }): DocsRoute {
105 url: `${this.basePath}/threads/${params.threadId}`,
109 resolveThread(params: { threadId: string }): DocsRoute {
112 url: `${this.basePath}/threads/${params.threadId}/resolve`,
116 editComment(params: { threadId: string; commentId: string; data: CommonPrivateCommentData }): DocsRoute {
119 url: `${this.basePath}/threads/${params.threadId}/comments/${params.commentId}`,
124 unresolveThread(params: { threadId: string }): DocsRoute {
127 url: `${this.basePath}/threads/${params.threadId}/unresolve`,
131 changeSuggestionState(params: { threadId: string; action: 'accept' | 'reject' | 'reopen' }): DocsRoute {
134 url: `${this.basePath}/threads/${params.threadId}/suggestion/${params.action}`,
138 deleteComment(params: { threadId: string; commentId: string }): DocsRoute {
141 url: `${this.basePath}/threads/${params.threadId}/comments/${params.commentId}`,
145 createRealtimeValetToken(params: { commitId?: string }): DocsRoute {
148 url: `${this.basePath}/tokens`,
149 data: { LastCommitID: params.commitId ?? null },