no more last n lines

This commit is contained in:
bel
2024-07-20 09:53:41 -06:00
parent ee6ce95c0a
commit 2141e030ef
2 changed files with 37 additions and 64 deletions

View File

@@ -70,44 +70,17 @@ func (router Router) FS(w http.ResponseWriter, r *http.Request) {
func (router Router) API(w http.ResponseWriter, r *http.Request) {
switch r.URL.Path {
case "/api/transactions":
bpis, err := router.bpis()
if err != nil {
panic(err)
}
lastNLines, err := router.files.TempGetLastNLines(20)
if err != nil {
panic(err)
}
deltas, err := router.files.Deltas()
if err != nil {
panic(err)
}
json.NewEncoder(w).Encode(map[string]any{
"deltas": deltas.Like(ledger.LikeAfter(time.Now().Add(-1 * time.Hour * 24 * 365 / 2).Format("2006-01"))),
"balances": deltas.Balances().
Like("^(Bel:Asset|Zach:Asset|HouseyMcHouseface:Debts:Credit)").
Group(`^[^:]*`).
WithBPIs(bpis),
"lastNLines": lastNLines,
})
return
case "/api/lastnlines":
if r.Method != http.MethodPut {
http.NotFound(w, r)
return
}
var lines []string
if err := json.NewDecoder(r.Body).Decode(&lines); err != nil {
panic(err)
}
if err := router.files.TempSetLastNLines(20, lines); err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
}
w.WriteHeader(http.StatusResetContent)
return
router.APITransactions(w, r)
case "/api/amend":
router.APILastNLines(w, r)
case "/api/reg":
router.APIReg(w, r)
default:
http.NotFound(w, r)
}
}
func (router Router) APIReg(w http.ResponseWriter, r *http.Request) {
deltas, err := router.files.Deltas()
if err != nil {
panic(err)
@@ -339,6 +312,34 @@ func (router Router) API(w http.ResponseWriter, r *http.Request) {
}
}
func (router Router) APITransactions(w http.ResponseWriter, r *http.Request) {
bpis, err := router.bpis()
if err != nil {
panic(err)
}
lastNLines, err := router.files.TempGetLastNLines(20)
if err != nil {
panic(err)
}
deltas, err := router.files.Deltas()
if err != nil {
panic(err)
}
json.NewEncoder(w).Encode(map[string]any{
"deltas": deltas.Like(ledger.LikeAfter(time.Now().Add(-1 * time.Hour * 24 * 365 / 2).Format("2006-01"))),
"balances": deltas.Balances().
Like("^(Bel:Asset|Zach:Asset|HouseyMcHouseface:Debts:Credit)").
Group(`^[^:]*`).
WithBPIs(bpis),
"lastNLines": lastNLines,
})
}
func (router Router) APILastNLines(w http.ResponseWriter, r *http.Request) {
http.Error(w, http.StatusText(http.StatusNotImplemented), http.StatusNotImplemented)
}
func (r Router) bpis() (ledger.BPIs, error) {
if r.bpiPath == "" {
return make(ledger.BPIs), nil