33 lines
663 B
Go
33 lines
663 B
Go
package helpers
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
)
|
|
|
|
func FiberErrorHandler(c *fiber.Ctx, err error) error {
|
|
// Status code defaults to 500
|
|
code := fiber.StatusInternalServerError
|
|
|
|
// Retrieve the custom status code if it's a *fiber.Error
|
|
var e *fiber.Error
|
|
if errors.As(err, &e) {
|
|
code = e.Code
|
|
}
|
|
|
|
title := fmt.Sprintf("Erreur %d", code)
|
|
message := err.Error()
|
|
|
|
if code == 500 {
|
|
message = "Une erreur est survenue, merci de prendre contact avec un administrateur."
|
|
}
|
|
|
|
// Send custom error page
|
|
return c.Status(code).Render("error_page", fiber.Map{
|
|
"PageTitle": title,
|
|
"Code": code,
|
|
"Message": message,
|
|
})
|
|
}
|