commit 91418b8a982c37be3aadde0c21f2f0fb1dc2e67d
parent 3b6cae3be0f332493df5aa5783902254cd94dce1
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Sat, 22 Feb 2025 14:13:57 -0800
cleanup
Diffstat:
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) {