87 lines
1.7 KiB
Go
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)
|
|
}
|