@@ -273,7 +273,61 @@ export class FileService extends APIService {
273
273
throw err ?. response ?. data ;
274
274
} ) ;
275
275
}
276
+ async reuploadWorkspaceAsset (
277
+ workspaceSlug : string ,
278
+ assetId : string ,
279
+ file : File ,
280
+ uploadProgressHandler ?: AxiosRequestConfig [ "onUploadProgress" ]
281
+ ) : Promise < TFileSignedURLResponse > {
282
+ const fileMetaData = getFileMetaDataForUpload ( file ) ;
283
+ return this . post ( `/api/assets/v2/workspaces/${ workspaceSlug } /reupload/${ assetId } /` , {
284
+ type : fileMetaData . type ,
285
+ size : fileMetaData . size ,
286
+ } )
287
+ . then ( async ( response ) => {
288
+ const signedURLResponse : TFileSignedURLResponse = response ?. data ;
289
+ const fileUploadPayload = generateFileUploadPayload ( signedURLResponse , file ) ;
290
+ await this . fileUploadService . uploadFile (
291
+ signedURLResponse . upload_data . url ,
292
+ fileUploadPayload ,
293
+ uploadProgressHandler
294
+ ) ;
295
+ await this . updateWorkspaceAssetUploadStatus ( workspaceSlug , signedURLResponse . asset_id ) ;
296
+ return signedURLResponse ;
297
+ } )
298
+ . catch ( ( error ) => {
299
+ throw error ?. response ?. data ;
300
+ } ) ;
301
+ }
276
302
303
+ async reuploadProjectAsset (
304
+ workspaceSlug : string ,
305
+ projectId : string ,
306
+ assetId : string ,
307
+ file : File ,
308
+ uploadProgressHandler ?: AxiosRequestConfig [ "onUploadProgress" ]
309
+ ) : Promise < TFileSignedURLResponse > {
310
+ const fileMetaData = getFileMetaDataForUpload ( file ) ;
311
+
312
+ return this . post ( `/api/assets/v2/workspaces/${ workspaceSlug } /projects/${ projectId } /reupload/${ assetId } /` , {
313
+ type : fileMetaData . type ,
314
+ size : fileMetaData . size ,
315
+ } )
316
+ . then ( async ( response ) => {
317
+ const signedURLResponse : TFileSignedURLResponse = response ?. data ;
318
+ const fileUploadPayload = generateFileUploadPayload ( signedURLResponse , file ) ;
319
+ await this . fileUploadService . uploadFile (
320
+ signedURLResponse . upload_data . url ,
321
+ fileUploadPayload ,
322
+ uploadProgressHandler
323
+ ) ;
324
+ await this . updateProjectAssetUploadStatus ( workspaceSlug , projectId , signedURLResponse . asset_id ) ;
325
+ return signedURLResponse ;
326
+ } )
327
+ . catch ( ( error ) => {
328
+ throw error ?. response ?. data ;
329
+ } ) ;
330
+ }
277
331
async getProjectCoverImages ( ) : Promise < string [ ] > {
278
332
return this . get ( `/api/project-covers/` )
279
333
. then ( ( res ) => res ?. data )
0 commit comments