package server import ( "fmt" "github.com/gofiber/fiber/v2" ) func (s *Server) ApiMonitor(api fiber.Router) { // Respond to requests like // - "/api/monitor/status?script=SCRIPT_NAME" where SCRIPT_NAME is the name of a file inside "./scripts" api.Get("/status", s.isAdminMiddleware, func(c *fiber.Ctx) error { if qScript := c.Query("script"); qScript != "" { output, err := s.Monitor.GetOutput(qScript) if err != nil { return err } return c.JSON(output) } return fmt.Errorf("no script, device or entity provided") }) api.Get("/invalidate-cache", s.isAdminMiddleware, func(c *fiber.Ctx) error { s.Monitor.InvalidateCache() return c.JSON("ok") }) }