Skip to content

Commit 0df5870

Browse files
committed
Fix apollo organization search
1 parent b3e97ee commit 0df5870

File tree

1 file changed

+29
-7
lines changed

1 file changed

+29
-7
lines changed

llmstack/processors/providers/apollo/organization_search.py

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import logging
2+
import urllib.parse
23
from typing import Any, Dict, List, Optional
34

45
from asgiref.sync import async_to_sync
@@ -100,22 +101,43 @@ def provider_slug() -> str:
100101
@classmethod
101102
def get_output_template(cls) -> OutputTemplate | None:
102103
return OutputTemplate(
103-
markdown="",
104+
markdown="{{response}}",
105+
jsonpath="$.accounts",
104106
)
105107

106108
def process(self) -> dict:
107-
data = self._input.model_dump()
108-
data["page"] = self._config.page
109-
data["per_page"] = self._config.page_size
110-
111109
provider_config = self.get_provider_config(provider_slug=self.provider_slug())
112110
api_key = provider_config.api_key
113111

112+
query_params_str = ""
113+
for key, values in self._input.model_dump().items():
114+
if not values:
115+
continue
116+
117+
values = [urllib.parse.quote(value) for value in values]
118+
if key == "organization_num_employees_ranges" and values:
119+
query_params_str += f"&organization_num_employees_ranges[]={','.join(values)}"
120+
elif key == "organization_locations" and values:
121+
query_params_str += f"&organization_locations[]={','.join(values)}"
122+
elif key == "organization_not_locations" and values:
123+
query_params_str += f"&organization_not_locations[]={','.join(values)}"
124+
elif key == "q_organization_keyword_tags" and values:
125+
query_params_str += f"&q_organization_keyword_tags[]={','.join(values)}"
126+
elif key == "q_organization_name" and values:
127+
query_params_str += f"&q_organization_name={values}"
128+
elif key == "organization_ids" and values:
129+
query_params_str += f"&organization_ids[]={','.join(values)}"
130+
131+
if query_params_str:
132+
query_params_str = "?" + query_params_str[1:]
133+
134+
query_url = f"https://api.apollo.io/api/v1/mixed_companies/search{query_params_str}&page={self._config.page}&per_page={self._config.page_size}"
135+
114136
response = prequests.post(
115-
url="https://api.apollo.io/api/v1/mixed_companies/search",
116-
json=data,
137+
url=query_url,
117138
headers={"Cache-Control": "no-cache", "Content-Type": "application/json", "X-Api-Key": api_key},
118139
)
140+
119141
if response.ok:
120142
self._usage_data.append(
121143
("apollo/*/*/*", MetricType.API_INVOCATION, (provider_config.provider_config_source, 1))

0 commit comments

Comments
 (0)