From 0a94d685fd437bb27abc301ce9b1b72496316eaf Mon Sep 17 00:00:00 2001 From: AKP Date: Sun, 9 Feb 2025 23:25:15 +0000 Subject: Use errors.As in HTTP error handler --- walrss/internal/http/http.go | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/walrss/internal/http/http.go b/walrss/internal/http/http.go index 892b261..f76170c 100644 --- a/walrss/internal/http/http.go +++ b/walrss/internal/http/http.go @@ -2,6 +2,7 @@ package http import ( "context" + "errors" "github.com/codemicro/walrss/walrss/internal/core" "github.com/codemicro/walrss/walrss/internal/http/views" "github.com/codemicro/walrss/walrss/internal/state" @@ -40,14 +41,18 @@ func New(st *state.State) (*Server, error) { code := fiber.StatusInternalServerError msg := "Internal Server Error" - switch e := err.(type) { - case *fiber.Error: - code = e.Code - msg = err.Error() - case *core.UserError: - code = e.Status - msg = err.Error() - default: + var ( + fiberErr *fiber.Error + userErr *core.UserError + ) + + if errors.As(err, &fiberErr) { + code = fiberErr.Code + msg = fiberErr.Error() + } else if errors.As(err, &userErr) { + code = userErr.Status + msg = userErr.Error() + } else { log.Error().Err(err).Str("location", "http").Str("url", ctx.OriginalURL()).Send() } -- cgit v1.2.3-70-g09d2