summaryrefslogtreecommitdiff
path: root/src/hub/src/spreadspace.org/sfive/s5store.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/hub/src/spreadspace.org/sfive/s5store.go')
-rw-r--r--src/hub/src/spreadspace.org/sfive/s5store.go41
1 files changed, 38 insertions, 3 deletions
diff --git a/src/hub/src/spreadspace.org/sfive/s5store.go b/src/hub/src/spreadspace.org/sfive/s5store.go
index 49b70de..24e9ae6 100644
--- a/src/hub/src/spreadspace.org/sfive/s5store.go
+++ b/src/hub/src/spreadspace.org/sfive/s5store.go
@@ -2,6 +2,7 @@ package sfive
import (
"database/sql"
+ "time"
//"time"
_ "github.com/mattn/go-sqlite3"
@@ -395,14 +396,48 @@ type statsResult struct {
LastStartTime *int64
}
-func (s sqliteStore) GetStats(filter *StatsFilter) (statsResult, error) { // (map[string]interface{}, error) {
+type StatsResult struct {
+ UpdateCount int
+ ClientCount float32
+ BytesSent uint
+ BytesReceived uint
+ StartTime time.Time
+ LastStartTime time.Time
+}
+
+func toApiStatsResult(value statsResult) (res StatsResult) {
+ if value.UpdateCount != nil {
+ res.UpdateCount = *value.UpdateCount
+ }
+ if value.ClientCount != nil {
+ res.ClientCount = *value.ClientCount
+ }
+ if value.BytesSent != nil {
+ res.BytesSent = *value.BytesSent
+ }
+ if value.BytesReceived != nil {
+ res.BytesReceived = *value.BytesReceived
+ }
+ if value.StartTime != nil {
+ res.StartTime = time.Unix(*value.StartTime, 0)
+ }
+ if value.LastStartTime != nil {
+ res.LastStartTime = time.Unix(*value.LastStartTime, 0)
+ }
+ return res
+}
+
+func (s sqliteStore) GetStats(filter *StatsFilter) (StatsResult, error) { // (map[string]interface{}, error) {
sourceSql, parameters := getFilteredDataUpdateSelect(filter)
_ = sourceSql
sql := "select " + getCountEntriesSql() + "," + getClientCountSql() + "," + getBpsStatsSql() + " from " + sourceSql
- s5l.Printf("stats sql: %v", sql)
+ // s5l.Printf("stats sql: %v", sql)
res := statsResult{}
err := s.db.SelectOne(&res, sql, parameters)
- return res, err
+ if err == nil {
+ return toApiStatsResult(res), nil
+ }
+ return StatsResult{}, err
}
func NewStore(path string) (store sqliteStore, err error) {