Skip to content

Commit

Permalink
feat: continuing to refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
MykalMachon committed Oct 7, 2023
1 parent 6ee15ca commit e7326a1
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 10 deletions.
28 changes: 28 additions & 0 deletions packages/app/src/actions/confirm-import.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import { confirm } from "@inquirer/prompts";
import { LunchMoneyAPI, LunchMoneyTransaction } from "@services/lunchmoney";

/**
* confirm the import with the user
* and finalize the import if they say it's okay
*/
const confirmImport = async (lm: LunchMoneyAPI, accounts: { transactions: LunchMoneyTransaction[], lmAccount: string }[]) => {
console.log(`You're about to insert transactions into your LunchMoney budget.`)
const confirmAns = await confirm({ message: `Are you sure you want to import them? ` });

if (!confirmAns) {
console.log('alright! bye!');
process.exit(0);
}

// insert transactions into LunchMoney
const insertResults = accounts.map((t) => {
console.log(`inserting ${t.transactions.length} transactions into Lunch Money account ${t.lmAccount}`)
return lm.insertTransactions(t.transactions);
});

await Promise.allSettled(insertResults);
console.log('results were inserted successfully. Please verify them in Lunch Money.')
console.log('https://my.lunchmoney.app/transactions/')
}

export default confirmImport;
12 changes: 2 additions & 10 deletions packages/app/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import setup from '@actions/setup';
import confirmUser from '@actions/confirm-user';
import loadAccounts from '@actions/load-accounts';
import { matchAccounts } from '@actions/match-accounts';
import confirmImport from '@actions/confirm-import';

// setup the database
const db = await setup();
Expand All @@ -30,7 +31,6 @@ const {lmAccounts, rbcAccounts} = await loadAccounts(rbc, lm);
// match RBC accounts to LunchMoney accounts
const matches = await matchAccounts(db, rbcAccounts, lmAccounts);


const transactionsByAccount = matches.map((am) => {
const accountMatch = am as Account;
const transactions = rbc.getTransactions().filter((t) => t["Account Number"] === accountMatch.rbc_name);
Expand All @@ -48,12 +48,4 @@ const transactionsByAccount = matches.map((am) => {
}
})

// insert transactions into LunchMoney
const insertResults = transactionsByAccount.map((t) => {
console.log(`inserting ${t.transactions.length} transactions into Lunch Money account ${t.lmAccount}`)
return lm.insertTransactions(t.transactions);
})

const results = await Promise.allSettled(insertResults);
console.log('results were inserted successfully. Please verify them in Lunch Money.')
console.log('https://my.lunchmoney.app/transactions/')
await confirmImport(lm, transactionsByAccount);

0 comments on commit e7326a1

Please sign in to comment.