import { type Actual, ActualImpl } from "@/actual.ts" import { cronJobDaily } from "@/cron.ts" import { type Bank, Sparebank1Impl } from "@/sparebank1.ts" import { transactionIntoActualTransaction } from "@/mappings.ts" async function daily(actual: Actual, bank: Bank): Promise<() => Promise> { return async () => { console.log("Wake up! It's 1 AM!") // Fetch transactions from the bank const transactions = await bank.transactionsPastDay( "my_account", "my_access_token", ) // TODO account? id or name? const actualTransactions = transactions.map((transaction) => transactionIntoActualTransaction(transaction, ""), ) // TODO Import transactions into Actual // If multiple accounts, loop over them // Get account ID from mapper await actual.importTransactions("a-b-c-d-e", actualTransactions) } } async function main(): Promise { const actual = await ActualImpl.init() cronJobDaily(await daily(actual, new Sparebank1Impl())) // await actual.shutdown() } void main()