//native
/**
* Create Requisition
* Create a requisition (draft cart), or create and submit it for approval. Body needs requisition-lines; field names use dashes.
*/
export async function main(
auth: RT.Coupa,
body: { [key: string]: any },
submit_for_approval: boolean | undefined
) {
const base = auth.instance_url.replace(/\/+$/, "")
const path = submit_for_approval
? "/api/requisitions/submit_for_approval"
: "/api/requisitions"
const url = new URL(`${base}${path}`)
const response = await fetch(url, {
method: "POST",
headers: {
Authorization: `Bearer ${auth.token}`,
"Content-Type": "application/json",
Accept: "application/json",
},
body: JSON.stringify(body),
})
if (!response.ok) {
throw new Error(`${response.status} ${await response.text()}`)
}
if (response.status === 204) return { success: true }
return await response.json()
}
Submitted by hugo989 3 hours ago