1 | type Apollo = { |
2 | apiKey: string; |
3 | }; |
4 |
|
5 | export async function main( |
6 | resource: Apollo, |
7 | params: { |
8 | search: string; |
9 | contactStageId?: string[]; |
10 | sortByField?: |
11 | | "contact_last_activity_date" |
12 | | "contact_email_last_opened_at" |
13 | | "contact_email_last_clicked_at" |
14 | | "contact_created_at" |
15 | | "contact_updated_at"; |
16 |
|
17 | sortAscending?: boolean; |
18 | } |
19 | ) { |
20 | const endpoint = "https://api.apollo.io/v1/contacts/search"; |
21 | const body = { |
22 | q_keywords: params.search, |
23 | contact_stage_ids: params.contactStageId, |
24 | sort_by_field: params.sortByField, |
25 | sort_ascending: params.sortAscending, |
26 | }; |
27 |
|
28 | const response = await fetch(endpoint, { |
29 | method: "POST", |
30 | headers: { |
31 | "Content-Type": "application/json", |
32 | "Cache-Control": "no-cache", |
33 | "X-Api-Key": resource.apiKey, |
34 | }, |
35 | body: JSON.stringify(body), |
36 | }); |
37 |
|
38 | if (!response.ok) { |
39 | throw new Error(`HTTP error! status: ${response.status}`); |
40 | } |
41 |
|
42 | const data = await response.json(); |
43 |
|
44 | return data.contacts; |
45 | } |
46 |
|