Skip to content

Commit c11a3c7

Browse files
lilixxsDiamondYuan
authored andcommitted
fix: yuque new doc not display in TOC
1 parent e11c433 commit c11a3c7

File tree

4 files changed

+23
-19
lines changed

4 files changed

+23
-19
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,3 @@ webclipper.zip
1313

1414
.now
1515
release
16-
yuque_openapi_20240904_green.yaml

src/common/backend/services/interface.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,19 +67,14 @@ export interface ServiceMeta {
6767
permission?: chrome.permissions.Permissions;
6868
}
6969

70-
export interface UpdateTOCRequest {
71-
repositoryId: string;
72-
documentId: Int32Array;
73-
}
70+
export interface UpdateTOCRequest {}
7471

7572
export interface DocumentService<T = any> {
7673
getId(): string;
7774

7875
getRepositories(): Promise<Repository[]>;
7976

80-
createDocument(request: CreateDocumentRequest): Promise<CompleteStatus | void>;
81-
82-
updateTOC(request: UpdateTOCRequest): Promise<T | void>;
77+
createDocument(request: T): Promise<CompleteStatus | void>;
8378

8479
getUserInfo(): Promise<UserInfo>;
8580

src/common/backend/services/yuque/interface.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { CompleteStatus, CreateDocumentRequest } from './../interface';
1+
import { CompleteStatus, CreateDocumentRequest, UpdateTOCRequest } from './../interface';
22
import { Repository } from '../interface';
33

44
export enum RepositoryType {
@@ -53,3 +53,8 @@ export interface YuqueCompleteStatus extends CompleteStatus {
5353
export interface YuqueCreateDocumentRequest extends CreateDocumentRequest {
5454
slug?: string;
5555
}
56+
57+
export interface YuqueUpdateTOCRequest extends UpdateTOCRequest{
58+
repositoryId: string;
59+
documentId: number[];
60+
}

src/common/backend/services/yuque/service.ts

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {
1515
YuqueRepository,
1616
YuqueCompleteStatus,
1717
YuqueCreateDocumentRequest,
18-
UpdateTOCRequest,
18+
YuqueUpdateTOCRequest,
1919
} from './interface';
2020

2121
const HOST = 'https://www.yuque.com';
@@ -102,7 +102,7 @@ export default class YuqueDocumentService implements DocumentService {
102102
);
103103
const data = response;
104104

105-
await this.updateTOC({ repositoryId, documentId: data.id.toString() });
105+
await this.updateYuqueTOC({ repositoryId, documentId: [data.id] });
106106

107107
return {
108108
href: `${HOST}/${repository.namespace}/${data.slug}`,
@@ -155,18 +155,23 @@ export default class YuqueDocumentService implements DocumentService {
155155
}
156156
};
157157

158-
private updateTOC = async (request: UpdateTOCRequest) => {
159-
const { repositoryId, documentId } = request;
158+
private updateYuqueTOC = async (info: YuqueUpdateTOCRequest) => {
159+
const { repositoryId, documentId } = info;
160160
const requestBody = {
161161
action: 'prependNode',
162-
action_mode: 'sibling',
163-
node_uuid: repositoryId,
164-
doc_ids: [documentId],
162+
action_mode: 'child',
163+
doc_ids: documentId,
165164
type: 'DOC',
166165
};
167166

168-
await this.request.put<YuqueRepositoryResponse[]>(`repos/${repositoryId}/toc`, {
169-
data: requestBody,
170-
});
167+
try {
168+
const response = await this.request.put(`repos/${repositoryId}/toc`, {
169+
data: requestBody,
170+
});
171+
return response;
172+
} catch (_error) {
173+
return {};
174+
}
175+
171176
};
172177
}

0 commit comments

Comments
 (0)