49 lines
743 B
Go
49 lines
743 B
Go
|
package chipmunk
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
type category struct {
|
||
|
Name string `json:"name"`
|
||
|
Budget float64 `json:"budget"`
|
||
|
Month month `json:"month"`
|
||
|
}
|
||
|
|
||
|
type month struct {
|
||
|
M time.Month `json:"m"`
|
||
|
Txs []tranx `json:"txs"`
|
||
|
}
|
||
|
|
||
|
func getCategory(e string) (int, error) {
|
||
|
for i, c := range categories {
|
||
|
if e == c.Name {
|
||
|
return i, nil
|
||
|
}
|
||
|
}
|
||
|
return 0, fmt.Errorf("could not find category")
|
||
|
}
|
||
|
|
||
|
//addUser adds user to slice of users
|
||
|
func addCategory(c category) {
|
||
|
_, err := getCategory(c.Name)
|
||
|
if err != nil {
|
||
|
categories = append(
|
||
|
categories,
|
||
|
category{
|
||
|
Name: c.Name,
|
||
|
Budget: c.Budget,
|
||
|
},
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func sumMonth(m month) float64 {
|
||
|
sum := 0.0
|
||
|
for _, t := range m.Txs {
|
||
|
sum += t.Cost
|
||
|
}
|
||
|
return sum
|
||
|
}
|