minhvtt commited on
Commit
5f0e47d
verified
1 Parent(s): 0246a3d

Update tools_service.py

Browse files
Files changed (1) hide show
  1. 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(arguments.get("user_id"))
 
 
 
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
- response = await self.client.get(url)
 
 
 
 
 
 
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: [...]}