commit 45eac0f94a6a0f18efc5fc1b91305f6e37f98feb
parent 07aaebf854fb77a468a281eef833dd60f7f137b3
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Wed, 18 Jan 2023 18:00:21 -0800
simplify code
Diffstat:
1 file changed, 42 insertions(+), 35 deletions(-)
diff --git a/pkg/web/handlers/api/v1/topBarHandler.go b/pkg/web/handlers/api/v1/topBarHandler.go
@@ -101,6 +101,45 @@ const (
redirectMultilineQP = "ml"
)
+func getDataMessagePrefix(c echo.Context, roomKey string, room database.ChatRoom, authUser *database.User) (out string, err error) {
+ pm := c.QueryParam(redirectPmQP)
+ edit := c.QueryParam(redirectEditQP)
+ group := c.QueryParam(redirectGroupQP)
+ mod := c.QueryParam(redirectModQP)
+ hbm := c.QueryParam(redirectHbmQP)
+ tag := c.QueryParam(redirectTagQP)
+ htag := c.QueryParam(redirectHTagQP)
+ mtag := c.QueryParam(redirectMTagQP)
+ quote := c.QueryParam(redirectQuoteQP)
+
+ if pm != "" {
+ out = "/pm " + pm + " "
+ } else if hbm != "" {
+ out = "/hbm "
+ } else if mod != "" {
+ out = "/m "
+ } else if group != "" {
+ out = "/g " + group + " "
+ } else if tag != "" {
+ out = "@" + tag + " "
+ } else if htag != "" {
+ out = "/hbm @" + htag + " "
+ } else if mtag != "" {
+ out = "/m @" + mtag + " "
+ } else if edit != "" {
+ out, err = handleGetEdit(edit, roomKey, room, authUser)
+ if err != nil {
+ return
+ }
+ } else if quote != "" {
+ out, err = handleGetQuote(quote, roomKey, room, authUser)
+ if err != nil {
+ return
+ }
+ }
+ return
+}
+
func buildCommandsList(authUser *database.User, room database.ChatRoom) (commandsList []string) {
if !authUser.AutocompleteCommandsEnabled {
return
@@ -178,15 +217,6 @@ func ChatTopBarHandler(c echo.Context) error {
} else if data.RoomName == "chess" {
data.RoomName = "general"
}
- pm := c.QueryParam(redirectPmQP)
- edit := c.QueryParam(redirectEditQP)
- group := c.QueryParam(redirectGroupQP)
- mod := c.QueryParam(redirectModQP)
- hbm := c.QueryParam(redirectHbmQP)
- tag := c.QueryParam(redirectTagQP)
- htag := c.QueryParam(redirectHTagQP)
- mtag := c.QueryParam(redirectMTagQP)
- quote := c.QueryParam(redirectQuoteQP)
queryParams := c.QueryParams()
origMl := utils.DoParseBool(c.QueryParam(redirectMultilineQP))
@@ -226,32 +256,9 @@ func ChatTopBarHandler(c echo.Context) error {
roomKey = key.Value
}
- baseRedirectURL := "/api/v1/chat/top-bar/" + room.Name
-
- if pm != "" {
- data.Message = "/pm " + pm + " "
- } else if hbm != "" {
- data.Message = "/hbm "
- } else if mod != "" {
- data.Message = "/m "
- } else if group != "" {
- data.Message = "/g " + group + " "
- } else if tag != "" {
- data.Message = "@" + tag + " "
- } else if htag != "" {
- data.Message = "/hbm @" + htag + " "
- } else if mtag != "" {
- data.Message = "/m @" + mtag + " "
- } else if edit != "" {
- data.Message, err = handleGetEdit(edit, roomKey, room, authUser)
- if err != nil {
- return c.Redirect(http.StatusFound, baseRedirectURL)
- }
- } else if quote != "" {
- data.Message, err = handleGetQuote(quote, roomKey, room, authUser)
- if err != nil {
- return c.Redirect(http.StatusFound, baseRedirectURL)
- }
+ data.Message, err = getDataMessagePrefix(c, roomKey, room, authUser)
+ if err != nil {
+ return c.Redirect(http.StatusFound, "/api/v1/chat/top-bar/"+room.Name)
}
data.CommandsList = buildCommandsList(authUser, room)