Spaces:
Sleeping
Sleeping
Update tools_service.py
Browse files- tools_service.py +19 -5
tools_service.py
CHANGED
|
@@ -84,9 +84,14 @@ class ToolsService:
|
|
| 84 |
}
|
| 85 |
]
|
| 86 |
|
| 87 |
-
async def execute_tool(self, tool_name: str, arguments: Dict) -> Any:
|
| 88 |
"""
|
| 89 |
Execute a tool by name with arguments
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 90 |
"""
|
| 91 |
print(f"馃敡 Executing Tool: {tool_name} with args: {arguments}")
|
| 92 |
|
|
@@ -95,7 +100,10 @@ class ToolsService:
|
|
| 95 |
return await self._get_event_details(arguments.get("event_id") or arguments.get("event_code"))
|
| 96 |
|
| 97 |
elif tool_name == "get_purchased_events":
|
| 98 |
-
return await self._get_purchased_events(
|
|
|
|
|
|
|
|
|
|
| 99 |
|
| 100 |
elif tool_name == "save_feedback":
|
| 101 |
return await self._save_feedback(
|
|
@@ -137,8 +145,8 @@ class ToolsService:
|
|
| 137 |
except Exception as e:
|
| 138 |
return {"error": str(e)}
|
| 139 |
|
| 140 |
-
async def _get_purchased_events(self, user_id: str) -> List[Dict]:
|
| 141 |
-
"""Call API to get purchased events for user"""
|
| 142 |
if not user_id:
|
| 143 |
return []
|
| 144 |
|
|
@@ -146,7 +154,13 @@ class ToolsService:
|
|
| 146 |
url = f"{self.base_url}/event/get-purchase-event-by-user-id/{user_id}"
|
| 147 |
print(f"馃攳 Calling API: {url}")
|
| 148 |
|
| 149 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 150 |
if response.status_code == 200:
|
| 151 |
data = response.json()
|
| 152 |
# API returns {data: [...]}
|
|
|
|
| 84 |
}
|
| 85 |
]
|
| 86 |
|
| 87 |
+
async def execute_tool(self, tool_name: str, arguments: Dict, access_token: Optional[str] = None) -> Any:
|
| 88 |
"""
|
| 89 |
Execute a tool by name with arguments
|
| 90 |
+
|
| 91 |
+
Args:
|
| 92 |
+
tool_name: Name of the tool
|
| 93 |
+
arguments: Tool arguments
|
| 94 |
+
access_token: JWT token for authenticated API calls
|
| 95 |
"""
|
| 96 |
print(f"馃敡 Executing Tool: {tool_name} with args: {arguments}")
|
| 97 |
|
|
|
|
| 100 |
return await self._get_event_details(arguments.get("event_id") or arguments.get("event_code"))
|
| 101 |
|
| 102 |
elif tool_name == "get_purchased_events":
|
| 103 |
+
return await self._get_purchased_events(
|
| 104 |
+
arguments.get("user_id"),
|
| 105 |
+
access_token=access_token # Pass access_token
|
| 106 |
+
)
|
| 107 |
|
| 108 |
elif tool_name == "save_feedback":
|
| 109 |
return await self._save_feedback(
|
|
|
|
| 145 |
except Exception as e:
|
| 146 |
return {"error": str(e)}
|
| 147 |
|
| 148 |
+
async def _get_purchased_events(self, user_id: str, access_token: Optional[str] = None) -> List[Dict]:
|
| 149 |
+
"""Call API to get purchased events for user (requires auth)"""
|
| 150 |
if not user_id:
|
| 151 |
return []
|
| 152 |
|
|
|
|
| 154 |
url = f"{self.base_url}/event/get-purchase-event-by-user-id/{user_id}"
|
| 155 |
print(f"馃攳 Calling API: {url}")
|
| 156 |
|
| 157 |
+
# Add Authorization header if access_token provided
|
| 158 |
+
headers = {}
|
| 159 |
+
if access_token:
|
| 160 |
+
headers["Authorization"] = f"Bearer {access_token}"
|
| 161 |
+
print(f"馃攼 Using access_token for authentication")
|
| 162 |
+
|
| 163 |
+
response = await self.client.get(url, headers=headers)
|
| 164 |
if response.status_code == 200:
|
| 165 |
data = response.json()
|
| 166 |
# API returns {data: [...]}
|