Move monzo_ynab into //tools
Optimizing is difficult: I like flat hierarchies because I don't like directory-hopping, but I also would like a cleaner root for my mono-repo. Bombs away! Well it's that time again, folks: spring cleaning! Here I am musing about a few things that bother me: - Should I use kebab-case or snake_case? - It feels ~confusing to have //tools and //utils. What a //projects? Isn't everything a project? *sigh*
This commit is contained in:
parent
4ed3254709
commit
5add8ddc13
16 changed files with 3 additions and 3 deletions
43
tools/monzo_ynab/main.go
Normal file
43
tools/monzo_ynab/main.go
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
// Exporting Monzo transactions to my YouNeedABudget.com (i.e. YNAB)
|
||||
// account. YNAB unfortunately doesn't currently offer an Monzo integration. As
|
||||
// a workaround and a practical excuse to learn Go, I decided to write one
|
||||
// myself.
|
||||
//
|
||||
// This job is going to run N times per 24 hours. Monzo offers webhooks for
|
||||
// reacting to certain types of events. I don't expect I'll need realtime data
|
||||
// for my YNAB integration. That may change, however, so it's worth noting.
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
|
||||
var (
|
||||
ynabAccountID = os.Getenv("ynab_account_id")
|
||||
)
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Business Logic
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Convert a Monzo transaction struct, `tx`, into a YNAB transaction struct.
|
||||
func toYnab(tx monzoSerde.Transaction) ynabSerde.Transaction {
|
||||
return ynabSerde.Transaction{
|
||||
Id: tx.Id,
|
||||
Date: tx.Created,
|
||||
Amount: tx.Amount,
|
||||
Memo: tx.Notes,
|
||||
AccountId: ynabAccountID,
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
txs := monzo.TransactionsLast24Hours()
|
||||
var ynabTxs []ynabSerde.Transaction{}
|
||||
for tx := range txs {
|
||||
append(ynabTxs, toYnab(tx))
|
||||
}
|
||||
ynab.PostTransactions(ynabTxs)
|
||||
os.Exit(0)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue