//native
/**
* List Expense Reports
* Query expense reports with optional filters. Returns up to 50 records per page; paginate with offset.
*/
export async function main(
auth: RT.Coupa,
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/expense_reports`)
const filters: { [key: string]: string | number | boolean | undefined } = {
"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