//native
/**
* Search Users
* Find users by name, email, phone or other user properties (`query`, e.g. `jane@example.com` or `role:agent`), or by exact `external_id`. Offset-paged (`page`, up to 100 per page).
*/
export async function main(
auth: RT.Zendesk,
query: string | undefined,
external_id: string | undefined,
page: number | undefined,
per_page: number | undefined
) {
const url = new URL(
`https://${auth.subdomain}.zendesk.com/api/v2/users/search`
)
if (query) {
url.searchParams.append("query", query)
}
if (external_id) {
url.searchParams.append("external_id", external_id)
}
url.searchParams.append("page", String(page || 1))
url.searchParams.append("per_page", String(per_page || 100))
const response = await fetch(url, {
headers: {
Authorization: auth.token
? `Bearer ${auth.token}`
: `Basic ${btoa(`${auth.username}:${auth.password}`)}`,
Accept: "application/json",
},
})
if (!response.ok) {
throw new Error(`${response.status} ${await response.text()}`)
}
return await response.json()
}
Submitted by hugo989 12 days ago