package status import ( "net/http" "os" "github.com/gin-gonic/gin" log "github.com/sirupsen/logrus" "github.com/vx3r/wg-gen-web/core" ) // ApplyRoutes applies router to gin Router func ApplyRoutes(r *gin.RouterGroup) { g := r.Group("/status") { g.GET("/enabled", readEnabled) g.GET("/interface", readInterfaceStatus) g.GET("/clients", readClientStatus) } } func readEnabled(c *gin.Context) { c.JSON(http.StatusOK, os.Getenv("WG_STATS_API") != "") } func readInterfaceStatus(c *gin.Context) { status, err := core.ReadInterfaceStatus() if err != nil { log.WithFields(log.Fields{ "err": err, }).Error("failed to read interface status") c.AbortWithStatusJSON(http.StatusInternalServerError, err.Error()) return } c.JSON(http.StatusOK, status) } func readClientStatus(c *gin.Context) { status, err := core.ReadClientStatus() if err != nil { log.WithFields(log.Fields{ "err": err, }).Error("failed to read client status") c.AbortWithStatusJSON(http.StatusInternalServerError, err.Error()) return } c.JSON(http.StatusOK, status) }