diff --git a/backend/api_test.go b/backend/api_test.go index 812c267..cfff1c9 100644 --- a/backend/api_test.go +++ b/backend/api_test.go @@ -416,7 +416,13 @@ func TestGetAllowance(t *testing.T) { response := e.GET("/user/1/allowance").Expect().Status(200).JSON().Array() response.Length().IsEqual(3) response.Value(0).Object().Value("allowance").Number().IsEqual(100) - response.Value(0).Object().Value("timestamp").Number().NotEqual(0).InDelta(float64(time.Now().Unix()), 2.0) + response.Value(0).Object().Value("timestamp").String().AsDateTime().InRange(getDelta(time.Now(), 2.0)) response.Value(1).Object().Value("allowance").Number().IsEqual(20) response.Value(2).Object().Value("allowance").Number().IsEqual(-10) } + +func getDelta(base time.Time, delta float64) (time.Time, time.Time) { + start := base.Add(-time.Duration(delta) * time.Second) + end := base.Add(time.Duration(delta) * time.Second) + return start, end +} diff --git a/backend/db.go b/backend/db.go index b37788d..120143b 100644 --- a/backend/db.go +++ b/backend/db.go @@ -256,13 +256,15 @@ func (db *Db) GetHistory(userId int) ([]Allowance, error) { history := make([]Allowance, 0) var err error - for row := range db.db.Query("select amount from history where user_id = ? order by `timestamp` desc"). + for row := range db.db.Query("select amount, `timestamp` from history where user_id = ? order by `timestamp` desc"). Bind(userId).Range(&err) { allowance := Allowance{} - err = row.Scan(&allowance.Allowance) + var timestamp int64 + err = row.Scan(&allowance.Allowance, ×tamp) if err != nil { return nil, err } + allowance.Timestamp = time.Unix(timestamp, 0) history = append(history, allowance) } if err != nil { diff --git a/backend/dto.go b/backend/dto.go index 00de6ad..225e28d 100644 --- a/backend/dto.go +++ b/backend/dto.go @@ -14,8 +14,8 @@ type UserWithAllowance struct { } type Allowance struct { - Allowance int `json:"allowance"` - Timestamp time.Time + Allowance int `json:"allowance"` + Timestamp time.Time `json:"timestamp"` } type PostAllowance struct { diff --git a/backend/go.mod b/backend/go.mod index 510e8c9..37bb671 100644 --- a/backend/go.mod +++ b/backend/go.mod @@ -3,7 +3,7 @@ module allowance_planner go 1.24.2 require ( - gitea.seeseepuff.be/seeseemelk/mysqlite v0.11.1 + gitea.seeseepuff.be/seeseemelk/mysqlite v0.12.0 github.com/gavv/httpexpect/v2 v2.17.0 github.com/gin-gonic/gin v1.10.0 ) @@ -67,7 +67,7 @@ require ( gopkg.in/fsnotify.v1 v1.4.7 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - modernc.org/libc v1.65.2 // indirect + modernc.org/libc v1.65.6 // indirect modernc.org/mathutil v1.7.1 // indirect modernc.org/memory v1.10.0 // indirect modernc.org/sqlite v1.37.0 // indirect diff --git a/backend/go.sum b/backend/go.sum index 0880315..75922a4 100644 --- a/backend/go.sum +++ b/backend/go.sum @@ -1,5 +1,7 @@ gitea.seeseepuff.be/seeseemelk/mysqlite v0.11.1 h1:5s0r2IRpomGJC6pjirdMk7HAcAYEydLK5AhBZy+V1Ys= gitea.seeseepuff.be/seeseemelk/mysqlite v0.11.1/go.mod h1:cgswydOxJjMlNwfcBIXnKjr47LwXnMT9BInkiHb0tXE= +gitea.seeseepuff.be/seeseemelk/mysqlite v0.12.0 h1:kl0VFgvm52UKxJhZpf1hvucxZdOoXY50g/VmzsWH+/8= +gitea.seeseepuff.be/seeseemelk/mysqlite v0.12.0/go.mod h1:cgswydOxJjMlNwfcBIXnKjr47LwXnMT9BInkiHb0tXE= github.com/TylerBrock/colorjson v0.0.0-20200706003622-8a50f05110d2 h1:ZBbLwSJqkHBuFDA6DUhhse0IGJ7T5bemHyNILUjvOq4= github.com/TylerBrock/colorjson v0.0.0-20200706003622-8a50f05110d2/go.mod h1:VSw57q4QFiWDbRnjdX8Cb3Ow0SFncRw+bA/ofY6Q83w= github.com/ajg/form v1.5.1 h1:t9c7v8JUKu/XxOGBU0yjNpaMloxGEJhUkqFRq0ibGeU= @@ -204,12 +206,15 @@ modernc.org/cc/v4 v4.26.1 h1:+X5NtzVBn0KgsBCBe+xkDC7twLb/jNVj9FPgiwSQO3s= modernc.org/cc/v4 v4.26.1/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0= modernc.org/ccgo/v4 v4.27.1 h1:emhLB4uoOmkZUnTDFcMI3AbkmU/Evjuerit9Taqe6Ss= modernc.org/ccgo/v4 v4.27.1/go.mod h1:543Q0qQhJWekKVS5P6yL5fO6liNhla9Lbm2/B3rEKDE= +modernc.org/ccgo/v4 v4.28.0 h1:rjznn6WWehKq7dG4JtLRKxb52Ecv8OUGah8+Z/SfpNU= modernc.org/fileutil v1.3.1 h1:8vq5fe7jdtEvoCf3Zf9Nm0Q05sH6kGx0Op2CPx1wTC8= modernc.org/fileutil v1.3.1/go.mod h1:HxmghZSZVAz/LXcMNwZPA/DRrQZEVP9VX0V4LQGQFOc= modernc.org/gc/v2 v2.6.5 h1:nyqdV8q46KvTpZlsw66kWqwXRHdjIlJOhG6kxiV/9xI= modernc.org/gc/v2 v2.6.5/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito= modernc.org/libc v1.65.2 h1:drWL1QO9fKXr3kXDN8y+4lKyBr8bA3mtUBQpftq3IJw= modernc.org/libc v1.65.2/go.mod h1:VI3V2S5mNka4deJErQ0jsMXe7jgxojE2fOB/mWoHlbc= +modernc.org/libc v1.65.6 h1:OhJUhmuJ6MVZdqL5qmnd0/my46DKGFhSX4WOR7ijfyE= +modernc.org/libc v1.65.6/go.mod h1:MOiGAM9lrMBT9L8xT1nO41qYl5eg9gCp9/kWhz5L7WA= modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU= modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg= modernc.org/memory v1.10.0 h1:fzumd51yQ1DxcOxSO+S6X7+QTuVU+n8/Aj7swYjFfC4= diff --git a/backend/main.go b/backend/main.go index 03cd7c9..8006f5c 100644 --- a/backend/main.go +++ b/backend/main.go @@ -356,7 +356,7 @@ func start(ctx context.Context, config *ServerConfig) { router.GET("/api/users", getUsers) router.GET("/api/user/:userId", getUser) router.POST("/api/user/:userId/allowance", postAllowance) - //router.GET("/api/user/:userId/allowance", getAllowance) + router.GET("/api/user/:userId/allowance", getAllowance) router.GET("/api/user/:userId/goals", getUserGoals) router.POST("/api/user/:userId/goals", createUserGoal) router.DELETE("/api/user/:userId/goal/:goalId", deleteUserGoal)