treasurer/internal/errors/http.go

31 lines
808 B
Go
Raw Normal View History

2023-06-13 13:22:51 +00:00
package errors
import (
2024-12-16 13:47:40 +00:00
"gitea.pena/PenaSide/treasurer/internal/models"
"github.com/gofiber/fiber/v2"
2023-06-13 13:22:51 +00:00
)
const defaultHTTPCode = fiber.StatusInternalServerError
2023-06-19 17:29:15 +00:00
2023-06-13 13:22:51 +00:00
var httpStatuses = map[ErrorType]int{
ErrInternalError: fiber.StatusInternalServerError,
ErrInvalidArgs: fiber.StatusBadRequest,
ErrNoAccess: fiber.StatusForbidden,
ErrNotFound: fiber.StatusNotFound,
ErrMethodNotImplemented: fiber.StatusNotImplemented,
ErrConflict: fiber.StatusConflict,
ErrInsufficientFunds: fiber.StatusPaymentRequired,
2023-06-13 13:22:51 +00:00
}
func HTTP(ctx *fiber.Ctx, err Error) error {
2023-06-13 13:22:51 +00:00
status, ok := httpStatuses[err.Type()]
if !ok {
status = defaultHTTPCode
2023-06-13 13:22:51 +00:00
}
return ctx.Status(status).JSON(models.ResponseErrorHTTP{
2023-06-13 13:22:51 +00:00
StatusCode: status,
Message: err.Error(),
})
}