@@ -69,19 +69,58 @@ async def delete(self, request: Request):
6969 """Proxy for entity info file DELETE API, handles permission checks."""
7070 logger .info ('Call API for deleting files in bulk' )
7171
72- data = await request .json ()
73- payload = {'ids' : data .get ('ids' , [])}
72+ params = request .query_params
7473 headers = {'Authorization' : request .headers .get ('Authorization' )}
7574 async with AsyncClient (timeout = ConfigClass .SERVICE_CLIENT_TIMEOUT ) as client :
76- response = await client .delete (
77- ConfigClass .METADATA_SERVICE + 'itembatch/mark' , params = payload , headers = headers
78- )
75+ response = await client .delete (ConfigClass .METADATA_SERVICE + 'items/mark/' , params = params , headers = headers )
7976 if response .status_code != 200 :
8077 error_msg = f'Error calling Meta service delete items: { response .json ()} '
8178 raise APIException (error_msg = error_msg , status_code = EAPIResponseCode .internal_error .value )
8279 result = response .json ()
8380 return JSONResponse (content = result , status_code = response .status_code )
8481
82+ @router .get (
83+ '/files/delete' ,
84+ summary = 'Get files marked for deletion in bulk' ,
85+ dependencies = [Depends (PermissionsCheck ('project' , '*' , 'view' ))],
86+ )
87+ async def get (self , request : Request ):
88+ """Proxy for entity info file DELETE API, handles permission checks."""
89+ logger .info ('Call API for getting files marked for deletion in bulk' )
90+
91+ headers = {'Authorization' : request .headers .get ('Authorization' )}
92+ async with AsyncClient (timeout = ConfigClass .SERVICE_CLIENT_TIMEOUT ) as client :
93+ response = await client .get (ConfigClass .METADATA_SERVICE + 'items/mark/' , headers = headers )
94+ if response .status_code != 200 :
95+ error_msg = f'Error calling Meta service get marked items: { response .json ()} '
96+ raise APIException (error_msg = error_msg , status_code = EAPIResponseCode .internal_error .value )
97+ result = response .json ()
98+ return JSONResponse (content = result , status_code = response .status_code )
99+
100+
101+ @cbv .cbv (router )
102+ class FileRestore :
103+ current_identity : CurrentUser = Depends (jwt_required )
104+
105+ @router .put (
106+ '/files/restore' ,
107+ summary = 'Restore file' ,
108+ dependencies = [Depends (PermissionsCheck ('project' , '*' , 'update' ))],
109+ )
110+ async def put (self , request : Request ):
111+ """Proxy for entity info file RESTORE API, handles permission checks."""
112+ logger .info ('Call API for restoring files in bulk' )
113+
114+ params = request .query_params
115+ headers = {'Authorization' : request .headers .get ('Authorization' )}
116+ async with AsyncClient (timeout = ConfigClass .SERVICE_CLIENT_TIMEOUT ) as client :
117+ response = await client .put (ConfigClass .METADATA_SERVICE + 'item/mark/' , params = params , headers = headers )
118+ if response .status_code != 200 :
119+ error_msg = f'Error calling Meta service restore items: { response .json ()} '
120+ raise APIException (error_msg = error_msg , status_code = EAPIResponseCode .internal_error .value )
121+ result = response .json ()
122+ return JSONResponse (content = result , status_code = response .status_code )
123+
85124
86125@cbv .cbv (router )
87126class FileMeta :
0 commit comments