const url = 'https://myprivacy.uber.com/privacy/api/getEatsOrders?localeCode=en-US'

async function fetchOrder(uuid = null) {
    const data = {limit: 40, lastWorkflowUuid: uuid}
    const payload = {
        method: 'POST',
        credentials: 'same-origin',
        headers: {'Content-Type': 'application/json', 'x-csrf-token': 'x'},
        body: JSON.stringify(data)
    }
    const resp = await fetch(url, payload)
    return await resp.json()
}

(async () => {
    let lastWorkflowUuid = null
    let total = 0
    let oldest = null
    let awkward = {};
    while (true) {
        const result = await fetchOrder(lastWorkflowUuid)
        if (result.data.orders.length === 0) {
            break
        }
        lastWorkflowUuid = result.data.orders[result.data.orders.length - 1].uuid
        oldest = result.data.orders[result.data.orders.length - 1].completionTime
        for (const order of result.data.orders) {
            if (order.currencyCode === "TWD") {
                total += order.fare
            } else {
                if (isNaN(awkward[order.currencyCode])) {
                        awkward[order.currencyCode] = 0
                    }
                    awkward[order.currencyCode] += order.fare
            }
        }
        console.log('讀取中...')
        console.log('目前總金額:', total)

    }

    console.log('自從 ', new Date(oldest).toLocaleString())
    console.log('UberEats 的總消費金額 ➡️', total)
    console.log('Uber 的外幣消費金額(未加總於上方金額) ➡️\n', JSON.stringify(awkward))
})()