Skip to content

Commit 6a44cda

Browse files
committed
[optimize] support Ownership Transfer in copying Lark documents
1 parent 0bca0c3 commit 6a44cda

File tree

3 files changed

+31
-14
lines changed

3 files changed

+31
-14
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
"mobx": "^6.15.0",
3131
"mobx-github": "^0.6.2",
3232
"mobx-i18n": "^0.7.2",
33-
"mobx-lark": "^2.6.0",
33+
"mobx-lark": "^2.6.3",
3434
"mobx-react": "^9.2.1",
3535
"mobx-react-helper": "^0.5.1",
3636
"mobx-restful": "^2.1.4",
@@ -66,7 +66,7 @@
6666
"eslint-plugin-react": "^7.37.5",
6767
"eslint-plugin-simple-import-sort": "^12.1.1",
6868
"git-utility": "^0.3.0",
69-
"globals": "^16.5.0",
69+
"globals": "^17.0.0",
7070
"husky": "^9.1.7",
7171
"jiti": "^2.6.1",
7272
"lint-staged": "^16.2.7",

pages/api/Lark/document/copy/[...slug].ts

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { Context } from 'koa';
2+
import { LarkDocumentPathType } from 'mobx-lark';
23
import { createKoaRouter, withKoaRouter } from 'next-ssr-middleware';
34

45
import { safeAPI, verifyJWT } from '../../../core';
@@ -10,9 +11,25 @@ const router = createKoaRouter(import.meta.url);
1011

1112
router.post('/:type/:id', safeAPI, verifyJWT, async (context: Context) => {
1213
const { type, id } = context.params,
13-
{ name, parentToken } = Reflect.get(context.request, 'body');
14+
{ name, parentToken, ownerType, ownerId } = Reflect.get(context.request, 'body');
1415

15-
context.body = await lark.copyFile(`${type as 'wiki'}/${id}`, name, parentToken);
16+
const copiedFile =
17+
type === 'wiki'
18+
? await lark.copyFile(`${type as 'wiki'}/${id}`, name, parentToken)
19+
: await lark.copyFile(`${type as LarkDocumentPathType}/${id}`, name, parentToken);
20+
21+
const newId = 'token' in copiedFile ? copiedFile.token : copiedFile.obj_token;
22+
23+
if (ownerType && ownerId)
24+
try {
25+
await lark.driveFileStore.transferOwner(type, newId, {
26+
member_type: ownerType,
27+
member_id: ownerId,
28+
});
29+
} catch (error) {
30+
console.error(JSON.stringify(error, null, 2));
31+
}
32+
context.body = copiedFile;
1633
});
1734

1835
export default withKoaRouter(router);

pnpm-lock.yaml

Lines changed: 10 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)