diff --git a/server/error.go b/server/error.go index effbd32..21689e8 100644 --- a/server/error.go +++ b/server/error.go @@ -1,9 +1,8 @@ package server import ( - "fmt" "net/http" - "os" + "strings" "github.com/labstack/echo/v4" ) @@ -14,33 +13,8 @@ func httpErrorHandler(err error, c echo.Context) { if httpError, ok := err.(*echo.HTTPError); ok { code = httpError.Code } - filePath := fmt.Sprintf("public/%d.html", code) - var f *os.File - if f, err = os.Open(filePath); err != nil { - c.Logger().Error(err) - serveError(c, 500) - return - } - if err = c.Stream(code, "text/html", f); err != nil { - c.Logger().Error(err) - serveError(c, 500) - return + if strings.Contains(err.Error(), "violates check constraint") { + code = 400 } -} - -func serveError(c echo.Context, code int) error { - var ( - f *os.File - err error - ) - if f, err = os.Open(fmt.Sprintf("public/%d.html", code)); err != nil { - c.Logger().Error(err) - return err - } - // TODO return errors in JSON - if err = c.Stream(code, "text/html", f); err != nil { - c.Logger().Error(err) - return err - } - return nil + c.JSON(code, map[string]any{"status": code}) }