Priority/backend.light/http_api.go
2024-01-16 10:58:26 +01:00

49 lines
972 B
Go

package main
import (
"bytes"
"io"
"log"
"net/http"
"github.com/gin-gonic/gin"
)
func (app *App) RegisterApiRoutes() {
api := app.Engine.Group("/api")
api.GET("/sse", app.Stream.SseHeadersMiddleware(), app.Stream.Stream)
api.GET("/priority", app.GetPriority)
api.POST("/priority", app.SetPriority)
}
func (app *App) GetPriority(c *gin.Context) {
c.JSON(http.StatusOK, app.Stream.Data)
log.Printf("get priority: %+v", app.Stream.Data)
}
func (app *App) SetPriority(c *gin.Context) {
var priority = Priority{}
body, _ := io.ReadAll(c.Request.Body)
log.Printf("set priority body: %s", string(body))
c.Request.Body = io.NopCloser(bytes.NewReader(body))
err := c.ShouldBindJSON(&priority)
log.Printf("set priority: %+v - err: %+v", priority, err)
c.JSON(http.StatusOK, gin.H{
"code": http.StatusOK,
"message": priority,
})
var msg = Message{
Event: "priority",
Data: priority,
}
app.Stream.Send(msg)
app.Stream.Data = priority
}