fix: address PR review feedback (round 2)
Bug fixes: - Catch OCSError/HTTPStatusError in all server tools, convert to McpError - Guard update_collective against empty body (raise ValueError) - Use restore_page response data in status message ADR-017 annotation fix: - Distinguish "remove" (reversible association) from "delete" (permanent): remove_tag and deck_remove_label_from_card no longer set destructiveHint - Update annotation test to exclude "remove" from destructive keywords Data model improvements: - Add trashTimestamp field to PageInfo - Create ListTrashedPagesResponse with is_trash context flag - Add collective_id to ListTagsResponse Test robustness: - Read NC credentials from environment variables (not hardcoded) - Filter landing page by parentId == 0 instead of assuming pages[0] Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
3393cd9756
commit
44a27bd9e9
@@ -71,10 +71,16 @@ class CollectivesClient(BaseNextcloudClient):
|
||||
async def update_collective(
|
||||
self, collective_id: int, emoji: str | None = None
|
||||
) -> dict[str, Any]:
|
||||
"""Update a collective (emoji)."""
|
||||
"""Update a collective (emoji).
|
||||
|
||||
Raises:
|
||||
ValueError: If no fields are provided to update.
|
||||
"""
|
||||
json_data: dict[str, Any] = {}
|
||||
if emoji is not None:
|
||||
json_data["emoji"] = emoji
|
||||
if not json_data:
|
||||
raise ValueError("At least one field must be provided to update")
|
||||
response = await self._make_request(
|
||||
"PUT",
|
||||
f"{API_BASE}/collectives/{collective_id}",
|
||||
|
||||
Reference in New Issue
Block a user