From b48c10052c1d73b718c632e6c2b55075b6668ea2 Mon Sep 17 00:00:00 2001 From: Audrius Butkevicius Date: Sat, 20 Jun 2020 22:14:10 +0100 Subject: [PATCH] Fix marshaling, force tick on start --- cmd/ursrv/main.go | 2 +- lib/ur/contract/contract.go | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/cmd/ursrv/main.go b/cmd/ursrv/main.go index ba6131762..dd0b928b8 100644 --- a/cmd/ursrv/main.go +++ b/cmd/ursrv/main.go @@ -304,7 +304,7 @@ const maxCacheTime = 15 * time.Minute func cacheRefresher(db *sql.DB) { ticker := time.NewTicker(maxCacheTime - time.Minute) defer ticker.Stop() - for range ticker.C { + for ; true; <-ticker.C { cacheMut.Lock() if err := refreshCacheLocked(db); err != nil { log.Println(err) diff --git a/lib/ur/contract/contract.go b/lib/ur/contract/contract.go index 7024332a0..e6f1b55e4 100644 --- a/lib/ur/contract/contract.go +++ b/lib/ur/contract/contract.go @@ -42,7 +42,7 @@ func (p *IntMap) Scan(src interface{}) error { type Report struct { // Generated - Received time.Time // Only from DB + Received time.Time `json:"-"` // Only from DB Date string `json:"date,omitempty"` Address string `json:"address,omitempty"` @@ -410,7 +410,9 @@ func (r *Report) FieldNames() []string { } func (r Report) Value() (driver.Value, error) { - return json.Marshal(r) + // This needs to be string, yet we read back bytes.. + bs, err := json.Marshal(r) + return string(bs), err } func (r *Report) Scan(value interface{}) error {