allllmost bpi

main
Bel LaPointe 2023-10-25 12:59:54 -06:00
parent f41ab4cb53
commit 4a4bcf3302
1 changed files with 41 additions and 2 deletions

View File

@ -1,6 +1,13 @@
package ledger
import "io"
import (
"bufio"
"bytes"
"fmt"
"io"
"os"
"strconv"
)
type BPIs string
@ -13,5 +20,37 @@ func NewBPIs(p string) (BPIs, error) {
}
func (bpis BPIs) values() (map[Currency]BPI, error) {
return nil, io.EOF
f, err := os.Open(string(bpis))
if os.IsNotExist(err) {
return nil, nil
}
if err != nil {
return nil, err
}
defer f.Close()
result := make(map[Currency]BPI)
r := bufio.NewReader(f)
for {
line, err := readTransactionLine(r)
if len(line) > 0 {
fields := bytes.Fields(line)
if len(fields) > 3 {
date := fields[1]
currency := fields[len(fields)-2]
value, err := strconv.ParseFloat(string(fields[len(fields)-1][1:]), 64)
if err != nil {
return nil, err
}
return nil, fmt.Errorf("what do with %s/%s/%.2f?", date, currency, value)
}
return nil, fmt.Errorf("what do: %s", line)
}
if err == io.EOF {
return result, nil
} else if err != nil {
return result, err
}
}
}