//native
/**
* List Suppliers
* Query suppliers with optional filters. Returns up to 50 records per page; paginate with offset.
*/
export async function main(
auth: RT.Coupa,
name: string | undefined,
number: string | undefined,
status: string | undefined,
updated_after: string | undefined,
limit: number | undefined,
offset: number | undefined,
return_object: "limited" | "shallow" | undefined
) {
const base = auth.instance_url.replace(/\/+$/, "")
const url = new URL(`${base}/api/suppliers`)
const filters: { [key: string]: string | number | boolean | undefined } = {
name,
number,
status,
"updated_at[gt]": updated_after,
limit,
offset,
return_object,
}
for (const [k, v] of Object.entries(filters)) {
if (v !== undefined && v !== "") {
url.searchParams.append(k, String(v))
}
}
const response = await fetch(url, {
headers: {
Authorization: `Bearer ${auth.token}`,
Accept: "application/json",
},
})
if (!response.ok) {
throw new Error(`${response.status} ${await response.text()}`)
}
return await response.json()
}
Submitted by hugo989 3 hours ago