// tslint:disable:no-console // import * as moment from 'moment'; // import * as mongoose from 'mongoose'; // tslint:disable-next-line:no-implicit-dependencies import * as csv from 'csvtojson'; import * as fs from 'fs'; import * as json2csv from 'json2csv'; import { chevre } from '../../../lib/index'; const csvFilePath = `${__dirname}/transactions.csv`; async function main() { const personRepo = new chevre.repository.Person({ userPoolId: '' }); const transactions = await csv() .fromFile(csvFilePath); console.log(transactions); const reports = []; for (const transaction of transactions) { const people = await personRepo.search({ id: transaction.personId }); console.log(people.length, people[0]?.memberOf?.membershipNumber, 'people found'); reports.push({ id: transaction.id, transactionNumber: transaction.transactionNumber, startDate: transaction.startDate, personId: transaction.personId, username: people[0]?.memberOf?.membershipNumber }); } // console.log(reports); console.log(reports.length); const fields = ['id', 'transactionNumber', 'startDate', 'personId', 'username']; const opts = { fields }; try { const usernamesCsv = json2csv.parse(reports, opts); const usernameCsvPath = `${__dirname}/usernames.csv`; // tslint:disable-next-line:non-literal-fs-path fs.writeFileSync(usernameCsvPath, usernamesCsv); } catch (err) { console.error(err); } } main() .then(() => { console.log('success!'); }) .catch(console.error);