package api import ( "net/http" "time" "github.com/gin-gonic/gin" "git.nemunai.re/nemunaire/reveil/config" "git.nemunai.re/nemunaire/reveil/player" ) func declareFederationRoutes(cfg *config.Config, router *gin.RouterGroup) { router.POST("/federation/wakeup", func(c *gin.Context) { var s map[string]interface{} c.ShouldBind(s) if player.CommonPlayer == nil { var seed int64 if tmp, ok := s["seed"].(int64); ok { seed = tmp } else { seed := time.Now().Unix() seed -= seed % 172800 } err := player.WakeUpFromFederation(cfg, seed, nil) if err != nil { c.AbortWithStatusJSON(http.StatusInternalServerError, gin.H{"errmsg": err.Error()}) return } } else { c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"errmsg": "Player already running"}) return } c.JSON(http.StatusOK, true) }) router.POST("/federation/wakeok", func(c *gin.Context) { if player.CommonPlayer != nil { err := player.CommonPlayer.Stop() if err != nil { c.AbortWithStatusJSON(http.StatusInternalServerError, gin.H{"errmsg": err.Error()}) return } } c.JSON(http.StatusOK, true) }) }