1 | |
2 |
|
3 | |
4 | * List Sequences |
5 | * Lists sequences with an optional name filter and cursor pagination. |
6 | */ |
7 | export async function main( |
8 | auth: RT.Outreach, |
9 | filter_name: string | undefined, |
10 | sort: string | undefined, |
11 | page_size: number | undefined, |
12 | page_after: string | undefined |
13 | ) { |
14 | const url = new URL("https://api.outreach.io/api/v2/sequences") |
15 | if (filter_name !== undefined && filter_name !== "") { |
16 | url.searchParams.append("filter[name]", filter_name) |
17 | } |
18 | if (sort !== undefined && sort !== "") { |
19 | url.searchParams.append("sort", sort) |
20 | } |
21 | if (page_size !== undefined) { |
22 | url.searchParams.append("page[size]", String(page_size)) |
23 | } |
24 | if (page_after !== undefined && page_after !== "") { |
25 | url.searchParams.append("page[after]", page_after) |
26 | } |
27 |
|
28 | const response = await fetch(url, { |
29 | headers: { |
30 | Authorization: `Bearer ${auth.token}`, |
31 | Accept: "application/vnd.api+json", |
32 | }, |
33 | }) |
34 |
|
35 | if (!response.ok) { |
36 | throw new Error(`${response.status} ${await response.text()}`) |
37 | } |
38 |
|
39 | return await response.json() |
40 | } |
41 |
|