Priority/backend/priority.go
2023-12-13 15:30:13 +01:00

87 lines
1.7 KiB
Go

package main
import (
"encoding/json"
"fmt"
"log"
"net/http"
"time"
"github.com/gin-gonic/gin"
)
/////////// Priority
func (w *Webapp) StartTimer(c *gin.Context) {
var msg Message
var err error
var timer time.Duration
err = c.ShouldBind(&msg)
if err != nil {
log.Printf("req error: %+v", err)
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
timer, err = time.ParseDuration(msg.Duration)
if err != nil {
log.Printf("req error: %+v", err)
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
w.Stream.Duration = timer
w.Stream.Start = true
log.Printf("start timer %s - received %s", w.Stream.Duration, msg.Duration)
c.JSON(http.StatusOK, w.Stream.Duration)
}
func (w *Webapp) LoadHeats(c *gin.Context) {
records, err := w.DB.ReadAll("Heat")
if err != nil {
fmt.Printf("read error: %+v", err)
}
heats := make([]Heat, 0)
for _, record := range records {
var heat Heat
err = json.Unmarshal([]byte(record), &heat)
if err != nil {
fmt.Printf("decode error: %+v", err)
}
heats = append(heats, heat)
}
c.JSON(http.StatusOK, heats)
log.Printf("heats: %+v", heats)
}
func (w *Webapp) GetPriority(c *gin.Context) {
log.Printf("send priority %s", w.Stream.StatusPriority)
c.JSON(http.StatusOK, w.Stream.StatusPriority)
}
func (w *Webapp) SetPriority(c *gin.Context) {
var msg Message
var err error
log.Printf("set priority %s", c.Request.Body)
err = c.ShouldBind(&msg)
if err != nil {
log.Printf("req error: %+v", err)
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
c.JSON(http.StatusOK, "OK")
log.Printf("msg %+v", msg)
w.Stream.StatusPriority = msg.Priority
w.Stream.SendPriority(msg.Priority)
}