package middlewares import ( "os" "strings" "github.com/gofiber/fiber/v2" ) func AdminApiAuth() fiber.Handler { return func(c *fiber.Ctx) error { apiKey := os.Getenv("ADMIN_API_KEY") if apiKey == "" { return c.Status(503).JSON(fiber.Map{"error": "ADMIN_API_KEY not configured"}) } token := "" auth := c.Get("Authorization") if strings.HasPrefix(auth, "Bearer ") { token = auth[7:] } if token == "" { token = c.Get("X-API-Key") } if token == "" || token != apiKey { return c.Status(401).JSON(fiber.Map{"error": "unauthorized"}) } return c.Next() } }