11import { Context } from 'koa' ;
2+ import { LarkDocumentPathType } from 'mobx-lark' ;
23import { createKoaRouter , withKoaRouter } from 'next-ssr-middleware' ;
34
45import { safeAPI , verifyJWT } from '../../../core' ;
@@ -10,9 +11,25 @@ const router = createKoaRouter(import.meta.url);
1011
1112router . 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
1835export default withKoaRouter ( router ) ;
0 commit comments