Add upload management features to Basecamp integration

- Implement methods to list uploads and retrieve specific upload details in basecamp_client.py.
- Add corresponding asynchronous functions for uploads in basecamp_fastmcp.py.
- Enhance search functionality to include uploads in search_utils.py, allowing users to search by filename or content.
This commit is contained in:
George Antonopoulos
2025-07-30 10:22:42 +01:00
parent 5ea5e77429
commit 0032498949
3 changed files with 132 additions and 1 deletions

View File

@@ -710,3 +710,25 @@ class BasecampClient:
return True
else:
raise Exception(f"Failed to trash document: {response.status_code} - {response.text}")
# Upload methods
def get_uploads(self, project_id, vault_id=None):
"""List uploads in a project or vault."""
if vault_id:
endpoint = f"buckets/{project_id}/vaults/{vault_id}/uploads.json"
else:
endpoint = f"buckets/{project_id}/uploads.json"
response = self.get(endpoint)
if response.status_code == 200:
return response.json()
else:
raise Exception(f"Failed to get uploads: {response.status_code} - {response.text}")
def get_upload(self, project_id, upload_id):
"""Get a single upload."""
endpoint = f"buckets/{project_id}/uploads/{upload_id}.json"
response = self.get(endpoint)
if response.status_code == 200:
return response.json()
else:
raise Exception(f"Failed to get upload: {response.status_code} - {response.text}")