export-mollie/src/app.ts

30 lines
1.5 KiB
TypeScript

"use strict";
import { writeFileSync } from 'fs';
import { unparse } from 'papaparse';
import { createMollieClient, MollieClient } from '@mollie/api-client';
import { log, mapKeys, prepend } from './utils';
import { mollieKeys, listAll } from './mollie';
async function main() {
const mollie = createMollieClient({ apiKey: mollieKeys.leden });
exportMollieCustomers(mollie);
exportMolliePayments(mollie);
}
async function exportMollieCustomers(mollie: MollieClient) {
const page$ = mollie.customers.list();
const list = (await listAll(page$, 500))
.map(({ id, name, email, createdAt }) => ({ id, name, email, createdAt }));
writeFileSync('./data/customers.csv', unparse(list));
}
async function exportMolliePayments(mollie: MollieClient) {
const page$ = mollie.payments.list();
const list = (await listAll(page$, 500))
// const list = Array.from(await page$)
.map(({ id, createdAt, paidAt, description, method, status, isCancelable, sequenceType, profileId, customerId, mandateId, details, amount, settlementAmount, amountRefunded, amountRemaining }) => ({ id, createdAt, paidAt, description, method, status, isCancelable, sequenceType, profileId, customerId, mandateId, ...mapKeys(prepend('details.'))(details), ...mapKeys(prepend('amount.'))(amount), ...mapKeys(prepend('settlementAmount.'))(settlementAmount), ...mapKeys(prepend('amountRefunded.'))(amountRefunded), ...mapKeys(prepend('amountRemaining.'))(amountRemaining) }));
writeFileSync('./data/payments.csv', unparse(list));
}
main();