Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions backend/app/clients/ocs.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@

import defusedxml.ElementTree as ET
from app.clients.base import BaseAPIClient
from app.exceptions import ExternalServiceError
from app.models.activity import Activity, FileActivity, FileActivityResponse, FileInfo
from app.models.search import FileSearchResult

Expand Down Expand Up @@ -87,9 +86,11 @@ async def _get_favorite_files(self) -> FileActivityResponse:
url = self._build_url("ocs/v2.php/cloud/user")
user_response = await self.client.get(url, params={"format": "json"}, headers=self._auth_headers())
if user_response.status_code != 200:
raise ExternalServiceError(
self.service_name, f"Failed to resolve current user (status {user_response.status_code})"
logger.warning(
"Failed to resolve current user for favorites (status %s), returning empty results",
user_response.status_code,
)
return FileActivityResponse(results=[], last_given=None)
user_id = user_response.json().get("ocs", {}).get("data", {}).get("id", "")

# WebDAV REPORT to filter favorite files
Expand All @@ -109,7 +110,11 @@ async def _get_favorite_files(self) -> FileActivityResponse:

response = await self.client.request("REPORT", report_url, content=xml_body.encode(), headers=headers)
if response.status_code not in (200, 207):
raise ExternalServiceError(self.service_name, f"Failed to fetch favorites (status {response.status_code})")
logger.warning(
"Failed to fetch favorites via WebDAV REPORT (status %s), returning empty results",
response.status_code,
)
return FileActivityResponse(results=[], last_given=None)

# Parse WebDAV multistatus XML response
DAV = "DAV:"
Expand Down
Loading
Loading