77
88import defusedxml .ElementTree as ET
99from app .clients .base import BaseAPIClient
10- from app .exceptions import ExternalServiceError
1110from app .models .activity import Activity , FileActivity , FileActivityResponse , FileInfo
1211from app .models .search import FileSearchResult
1312
@@ -87,9 +86,11 @@ async def _get_favorite_files(self) -> FileActivityResponse:
8786 url = self ._build_url ("ocs/v2.php/cloud/user" )
8887 user_response = await self .client .get (url , params = {"format" : "json" }, headers = self ._auth_headers ())
8988 if user_response .status_code != 200 :
90- raise ExternalServiceError (
91- self .service_name , f"Failed to resolve current user (status { user_response .status_code } )"
89+ logger .warning (
90+ "Failed to resolve current user for favorites (status %s), returning empty results" ,
91+ user_response .status_code ,
9292 )
93+ return FileActivityResponse (results = [], last_given = None )
9394 user_id = user_response .json ().get ("ocs" , {}).get ("data" , {}).get ("id" , "" )
9495
9596 # WebDAV REPORT to filter favorite files
@@ -109,7 +110,11 @@ async def _get_favorite_files(self) -> FileActivityResponse:
109110
110111 response = await self .client .request ("REPORT" , report_url , content = xml_body .encode (), headers = headers )
111112 if response .status_code not in (200 , 207 ):
112- raise ExternalServiceError (self .service_name , f"Failed to fetch favorites (status { response .status_code } )" )
113+ logger .warning (
114+ "Failed to fetch favorites via WebDAV REPORT (status %s), returning empty results" ,
115+ response .status_code ,
116+ )
117+ return FileActivityResponse (results = [], last_given = None )
113118
114119 # Parse WebDAV multistatus XML response
115120 DAV = "DAV:"
0 commit comments