//native
/**
* List Tasks
* Lists tasks, filterable by state, task type, prospect or dueAt range (e.g. "2024-01-01..inf").
*/
export async function main(
auth: RT.Outreach,
filter_state: ("pending" | "incomplete" | "complete") | undefined,
filter_task_type: string | undefined,
filter_prospect_id: number | undefined,
filter_due_at: string | undefined,
sort: string | undefined,
page_size: number | undefined,
page_after: string | undefined
) {
const url = new URL("https://api.outreach.io/api/v2/tasks")
if (filter_state !== undefined) {
url.searchParams.append("filter[state]", filter_state)
}
if (filter_task_type !== undefined && filter_task_type !== "") {
url.searchParams.append("filter[taskType]", filter_task_type)
}
if (filter_prospect_id !== undefined) {
url.searchParams.append("filter[prospect][id]", String(filter_prospect_id))
}
if (filter_due_at !== undefined && filter_due_at !== "") {
url.searchParams.append("filter[dueAt]", filter_due_at)
}
if (sort !== undefined && sort !== "") {
url.searchParams.append("sort", sort)
}
if (page_size !== undefined) {
url.searchParams.append("page[size]", String(page_size))
}
if (page_after !== undefined && page_after !== "") {
url.searchParams.append("page[after]", page_after)
}
const response = await fetch(url, {
headers: {
Authorization: `Bearer ${auth.token}`,
Accept: "application/vnd.api+json",
},
})
if (!response.ok) {
throw new Error(`${response.status} ${await response.text()}`)
}
return await response.json()
}
Submitted by hugo989 5 hours ago