Added events feature + rewrote router.go api/v1

This commit is contained in:
2023-06-11 12:09:27 +02:00
parent 7c111f97ab
commit 77ac3e548d
7 changed files with 95 additions and 14 deletions

View File

@@ -0,0 +1,43 @@
package middleware
import (
"fmt"
"github.com/gofiber/fiber/v2"
)
type ProblemDetails struct {
Type string
Title string
Status int
Detail string
}
func ErrorHandler() fiber.Handler {
return func(c *fiber.Ctx) error {
defer func() {
if r := recover(); r != nil {
status := fiber.StatusInternalServerError
c.Status(status).JSON(ProblemDetails{
Type: fmt.Sprintf("https://httpstatuses.io/%d", status),
Title: "Internal Server Error",
Status: status,
Detail: fmt.Sprint(r),
})
}
}()
err := c.Next()
if err != nil {
status := c.Response().StatusCode()
c.JSON(ProblemDetails{
Type: fmt.Sprintf("https://httpstatuses.io/%d", status),
Title: err.Error(),
Status: status,
Detail: "No further details available",
})
}
return nil
}
}