From aca6e0145b17278eb8a8172ee01bdf95f1b4afb8 Mon Sep 17 00:00:00 2001 From: Alfie Day Date: Sat, 24 Aug 2024 20:11:07 +0100 Subject: [PATCH] Use API getAccountBalance --- apply-interest.js | 4 ++-- kbb.js | 4 ++-- sync-bitcoin.js | 4 ++-- track-investments.js | 4 ++-- utils.js | 13 ------------- zestimate.js | 4 ++-- 6 files changed, 10 insertions(+), 23 deletions(-) diff --git a/apply-interest.js b/apply-interest.js index 1609701..9a150ec 100644 --- a/apply-interest.js +++ b/apply-interest.js @@ -1,5 +1,5 @@ const api = require('@actual-app/api'); -const { closeBudget, ensurePayee, getAccountBalance, getAccountNote, getLastTransactionDate, openBudget, showPercent } = require('./utils'); +const { closeBudget, ensurePayee, getAccountNote, getLastTransactionDate, openBudget, showPercent } = require('./utils'); require("dotenv").config(); (async () => { @@ -35,7 +35,7 @@ require("dotenv").config(); if (!lastDate) continue; const daysPassed = Math.floor((interestTransactionDate - new Date(lastDate)) / 86400000); - const balance = await getAccountBalance(account, interestTransactionDate); + const balance = await api.getAccountBalance(account, interestTransactionDate); const compoundedInterest = Math.round(balance * (Math.pow(1 + interestRate / 12, 1) - 1)); interestRate = showPercent(interestRate); diff --git a/kbb.js b/kbb.js index c8cdb4a..19b7041 100644 --- a/kbb.js +++ b/kbb.js @@ -1,6 +1,6 @@ const api = require('@actual-app/api'); const jsdom = require("jsdom"); -const { closeBudget, ensurePayee, getAccountBalance, getAccountNote, getLastTransactionDate, getTagValue, openBudget, setAccountNote, sleep } = require('./utils'); +const { closeBudget, ensurePayee, getAccountNote, getLastTransactionDate, getTagValue, openBudget, setAccountNote, sleep } = require('./utils'); require("dotenv").config(); async function getKBB(URL) { @@ -52,7 +52,7 @@ async function getKBB(URL) { console.log('Fetching KBB for account:', account.name); const kbb = await getKBB(URL); - const balance = await getAccountBalance(account); + const balance = await api.getAccountBalance(account); const diff = kbb - balance; console.log('KBB:', kbb); diff --git a/sync-bitcoin.js b/sync-bitcoin.js index 1ab5a3e..e70fde1 100644 --- a/sync-bitcoin.js +++ b/sync-bitcoin.js @@ -1,4 +1,4 @@ -const { closeBudget, openBudget, getTransactions, getAccountNote, getAccountBalance, ensurePayee } = require('./utils'); +const { closeBudget, openBudget, getTransactions, getAccountNote, ensurePayee } = require('./utils'); const api = require('@actual-app/api'); function getValueAtPath(obj, path) { @@ -53,7 +53,7 @@ async function getBitcoinPrice() { continue; } const btc_amount = note.split('BTC:')[1].split(' ')[0]; - const currentBalance = await getAccountBalance(account); + const currentBalance = await api.getAccountBalance(account); const targetBalance = Math.round(bitcoinPrice * btc_amount * 100); const diff = currentBalance - targetBalance; if (diff != 0) { diff --git a/track-investments.js b/track-investments.js index 07b98fb..86fa12d 100644 --- a/track-investments.js +++ b/track-investments.js @@ -1,7 +1,7 @@ const api = require('@actual-app/api'); const fs = require('fs'); const readline = require('readline-sync'); -const { closeBudget, ensureCategory, ensureCategoryGroup, ensurePayee, getAccountBalance, getAccountNote, getSimpleFinID, getTransactions, openBudget } = require('./utils'); +const { closeBudget, ensureCategory, ensureCategoryGroup, ensurePayee, getAccountNote, getSimpleFinID, getTransactions, openBudget } = require('./utils'); require("dotenv").config(); @@ -112,7 +112,7 @@ const zeroTransaction = async (payment) => { } if (note.indexOf('calcInvestment') > -1) { - const currentBalance = await getAccountBalance(account); + const currentBalance = await api.getAccountBalance(account); const simpleFinID = await getSimpleFinID(account); const simplefinBalance = parseInt(simplefinBalances[simpleFinID] * 100); const diff = simplefinBalance - currentBalance; diff --git a/utils.js b/utils.js index 45b3f26..7aae441 100644 --- a/utils.js +++ b/utils.js @@ -41,19 +41,6 @@ const Utils = { } }, - getAccountBalance: async function (account, cutoffDate=new Date()) { - const data = await api.runQuery( - api.q('transactions') - .filter({ - 'account': account.id, - 'date': { $lt: cutoffDate }, - }) - .calculate({ $sum: '$amount' }) - .options({ splits: 'grouped' }) - ); - return data.data; - }, - getTransactions: async function (account) { const data = await api.runQuery( api.q('transactions') diff --git a/zestimate.js b/zestimate.js index 8f6a30a..2aab007 100644 --- a/zestimate.js +++ b/zestimate.js @@ -1,6 +1,6 @@ const api = require('@actual-app/api'); const jsdom = require("jsdom"); -const { closeBudget, ensurePayee, getAccountBalance, getAccountNote, openBudget, showPercent, sleep } = require('./utils'); +const { closeBudget, ensurePayee, getAccountNote, openBudget, showPercent, sleep } = require('./utils'); require("dotenv").config(); async function getZestimate(URL) { @@ -59,7 +59,7 @@ async function getZestimate(URL) { console.log('Was unable to get Zestimate, skipping'); continue; } - const balance = await getAccountBalance(account); + const balance = await api.getAccountBalance(account); const diff = (zestimate * ownership) - balance; console.log('Zestimate:', zestimate);