package utils

import (
	"time"

	"github.com/gofiber/fiber/v2"
	"github.com/gofiber/fiber/v2/middleware/limiter"
)

var ConfigLimiter limiter.Config = limiter.Config{
	Max:        10,
	Expiration: 60 * time.Second,
	LimitReached: func(c *fiber.Ctx) error {
		if c.Get("content-type") == "application/json" {
			return c.Status(418).JSON(fiber.Map{
				"msg":     "Too many requests, slow down I'm a teapot (10 requests per minute)",
				"success": false,
			})
		}
		return c.Render("views/home", fiber.Map{
			"ERR":                 "You have reached the limit of requests! Please check back later. (1 minute)",
			"CI_COMMIT_SHORT_SHA": CI_COMMIT_SHORT_SHA,
			"CI_COMMIT_BRANCH":    CI_COMMIT_BRANCH,
			"CI_BUILD":            CI_BUILD,
		})
	},
}