dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit 91418b8a982c37be3aadde0c21f2f0fb1dc2e67d
parent 3b6cae3be0f332493df5aa5783902254cd94dce1
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Sat, 22 Feb 2025 14:13:57 -0800

cleanup

Diffstat:
Mpkg/web/handlers/api/v1/topBarHandler.go | 34++++++++++++++++++++--------------
1 file changed, 20 insertions(+), 14 deletions(-)

diff --git a/pkg/web/handlers/api/v1/topBarHandler.go b/pkg/web/handlers/api/v1/topBarHandler.go @@ -10,6 +10,7 @@ import ( "dkforest/pkg/web/handlers/interceptors/command" "dkforest/pkg/web/handlers/streamModals" "dkforest/pkg/web/handlers/utils/stream" + "errors" "fmt" "github.com/dustin/go-humanize" "github.com/labstack/echo" @@ -221,25 +222,30 @@ func ChatTopBarHandler(c echo.Context) error { interceptor.InterceptMsg(cmd) data.Message = cmd.DataMessage if cmd.Err != nil { - return handleCmdError(cmd.Err, c, data, cmd.RedirectURL(), cmd.OrigMessage) + break } } - - return c.Redirect(http.StatusFound, cmd.RedirectURL()) + return redirectCmd(c, cmd, data) } -func handleCmdError(err error, ctx echo.Context, data chatTopBarData, redirectURL, origMessage string) error { - if err == command.ErrRedirect { - return ctx.Redirect(http.StatusFound, redirectURL) - } else if err == command.ErrStop { - return ctx.Render(http.StatusOK, "chat-top-bar", data) - } else if serr, ok := err.(*command.ErrSuccess); ok { - data.Success = serr.Error() - return ctx.Render(http.StatusOK, "chat-top-bar", data) +func redirectCmd(c echo.Context, cmd *command.Command, data chatTopBarData) error { + err := cmd.Err + redirectURL := cmd.RedirectURL() + if err != nil { + var successErr *command.ErrSuccess + if errors.Is(err, command.ErrRedirect) { + return c.Redirect(http.StatusFound, redirectURL) + } else if errors.Is(err, command.ErrStop) { + return c.Render(http.StatusOK, "chat-top-bar", data) + } else if errors.As(err, &successErr) { + data.Success = successErr.Error() + return c.Render(http.StatusOK, "chat-top-bar", data) + } + data.Message = cmd.OrigMessage + data.Error = err.Error() + return c.Render(http.StatusOK, "chat-top-bar", data) } - data.Message = origMessage - data.Error = err.Error() - return ctx.Render(http.StatusOK, "chat-top-bar", data) + return c.Redirect(http.StatusFound, redirectURL) } func handleGetQuote(db *database.DkfDB, msgUUID, roomKey string, room database.ChatRoom, authUser *database.User) (dataMessage string, err error) {