th7/api/service.go

46 lines
799 B
Go

package api
import (
"log"
"th7/data/core"
"th7/ports"
"time"
"encoding/json"
)
const (
CheckChannelDur = time.Millisecond * 1200
StartupSleepDur = time.Second * 5
)
type Wrapper struct {
Channels []core.Channel `json:"channels"`
Ratio core.Ratio `json:"ratio"`
Timestamp string `json:"time"`
}
// Regularly get the newest data and bung it out on ws
func startService(man *Manager, core ports.CorePort) {
var wrap Wrapper
time.Sleep(StartupSleepDur)
for {
wrap.Channels = core.GetChannels()
wrap.Ratio = core.GetRatio()
wrap.Timestamp = time.Now().Format(time.RFC1123)
marshaled, err := json.Marshal(wrap)
if err != nil {
log.Println("Error marshaling struct:", wrap)
}
man.broadcast <- []byte(marshaled)
time.Sleep(CheckChannelDur)
}
}