diff --git a/internal/handlers/api.go b/internal/handlers/api.go index ec8cbec..ca96da2 100644 --- a/internal/handlers/api.go +++ b/internal/handlers/api.go @@ -27,7 +27,15 @@ const ( defaultMaxBodySize = 4096 defaultHistLimit = 50 maxHistLimit = 500 + cmdJoin = "JOIN" + cmdList = "LIST" + cmdNick = "NICK" + cmdPart = "PART" cmdPrivmsg = "PRIVMSG" + cmdQuit = "QUIT" + cmdTopic = "TOPIC" + cmdWho = "WHO" + cmdWhois = "WHOIS" ) func (hdlr *Handlers) maxBodySize() int64 { @@ -756,32 +764,32 @@ func (hdlr *Handlers) dispatchCommand( sessionID, clientID, nick, command, target, body, bodyLines, ) - case "JOIN": + case cmdJoin: hdlr.handleJoin( writer, request, sessionID, clientID, nick, target, ) - case "PART": + case cmdPart: hdlr.handlePart( writer, request, sessionID, clientID, nick, target, body, ) - case "NICK": + case cmdNick: hdlr.handleNick( writer, request, sessionID, clientID, nick, bodyLines, ) - case "TOPIC": + case cmdTopic: hdlr.handleTopic( writer, request, sessionID, clientID, nick, target, body, bodyLines, ) - case "QUIT": + case cmdQuit: hdlr.handleQuit( writer, request, sessionID, nick, body, ) - case "MOTD", "LIST", "WHO", "WHOIS", "PING": + case "MOTD", cmdList, cmdWho, cmdWhois, "PING": hdlr.dispatchInfoCommand( writer, request, sessionID, clientID, nick, @@ -815,18 +823,18 @@ func (hdlr *Handlers) dispatchQueryCommand( writer, request, sessionID, clientID, nick, target, ) - case "LIST": + case cmdList: hdlr.handleList( writer, request, sessionID, clientID, nick, ) - case "WHOIS": + case cmdWhois: hdlr.handleWhois( writer, request, sessionID, clientID, nick, target, bodyLines, ) - case "WHO": + case cmdWho: hdlr.handleWho( writer, request, sessionID, clientID, nick, target, @@ -1073,7 +1081,7 @@ func (hdlr *Handlers) handleJoin( if target == "" { hdlr.respondIRCError( writer, request, clientID, sessionID, - "461", nick, []string{"JOIN"}, + "461", nick, []string{cmdJoin}, "Not enough parameters", ) @@ -1144,7 +1152,7 @@ func (hdlr *Handlers) executeJoin( ) _ = hdlr.fanOutSilent( - request, "JOIN", nick, channel, nil, memberIDs, + request, cmdJoin, nick, channel, nil, memberIDs, ) hdlr.deliverJoinNumerics( @@ -1242,7 +1250,7 @@ func (hdlr *Handlers) handlePart( if target == "" { hdlr.enqueueNumeric( request.Context(), clientID, - "461", nick, []string{"PART"}, + "461", nick, []string{cmdPart}, "Not enough parameters", ) hdlr.broker.Notify(sessionID) @@ -1280,7 +1288,7 @@ func (hdlr *Handlers) handlePart( ) _ = hdlr.fanOutSilent( - request, "PART", nick, channel, body, memberIDs, + request, cmdPart, nick, channel, body, memberIDs, ) err = hdlr.params.Database.PartChannel( @@ -1322,7 +1330,7 @@ func (hdlr *Handlers) handleNick( if len(lines) == 0 { hdlr.respondIRCError( writer, request, clientID, sessionID, - "461", nick, []string{"NICK"}, + "461", nick, []string{cmdNick}, "Not enough parameters", ) @@ -1420,7 +1428,7 @@ func (hdlr *Handlers) broadcastNick( } dbID, _, _ := hdlr.params.Database.InsertMessage( - request.Context(), "NICK", oldNick, "", + request.Context(), cmdNick, oldNick, "", nil, json.RawMessage(nickBody), nil, ) @@ -1461,7 +1469,7 @@ func (hdlr *Handlers) handleTopic( if target == "" { hdlr.respondIRCError( writer, request, clientID, sessionID, - "461", nick, []string{"TOPIC"}, + "461", nick, []string{cmdTopic}, "Not enough parameters", ) @@ -1472,7 +1480,7 @@ func (hdlr *Handlers) handleTopic( if len(lines) == 0 { hdlr.respondIRCError( writer, request, clientID, sessionID, - "461", nick, []string{"TOPIC"}, + "461", nick, []string{cmdTopic}, "Not enough parameters", ) @@ -1534,7 +1542,7 @@ func (hdlr *Handlers) executeTopic( ) _ = hdlr.fanOutSilent( - request, "TOPIC", nick, channel, body, memberIDs, + request, cmdTopic, nick, channel, body, memberIDs, ) hdlr.enqueueNumeric( @@ -1567,16 +1575,16 @@ func (hdlr *Handlers) dispatchInfoCommand( hdlr.deliverMOTD( request, clientID, sessionID, nick, ) - case "LIST": + case cmdList: hdlr.handleListCmd( request, clientID, sessionID, nick, ) - case "WHO": + case cmdWho: hdlr.handleWhoCmd( request, clientID, sessionID, nick, target, ) - case "WHOIS": + case cmdWhois: hdlr.handleWhoisCmd( request, clientID, sessionID, nick, target, bodyLines, @@ -1657,7 +1665,7 @@ func (hdlr *Handlers) handleWhoCmd( if target == "" { hdlr.enqueueNumeric( ctx, clientID, "461", nick, - []string{"WHO"}, "Not enough parameters", + []string{cmdWho}, "Not enough parameters", ) hdlr.broker.Notify(sessionID) @@ -1728,7 +1736,7 @@ func (hdlr *Handlers) handleWhoisCmd( if whoisNick == "" { hdlr.enqueueNumeric( ctx, clientID, "461", nick, - []string{"WHOIS"}, "Not enough parameters", + []string{cmdWhois}, "Not enough parameters", ) hdlr.broker.Notify(sessionID) @@ -1831,7 +1839,7 @@ func (hdlr *Handlers) handleQuit( if len(channels) > 0 { dbID, _, _ = hdlr.params.Database.InsertMessage( - request.Context(), "QUIT", nick, "", + request.Context(), cmdQuit, nick, "", nil, body, nil, ) } @@ -2100,7 +2108,7 @@ func (hdlr *Handlers) handleWhois( if queryNick == "" { hdlr.respondIRCError( writer, request, clientID, sessionID, - "461", nick, []string{"WHOIS"}, + "461", nick, []string{cmdWhois}, "Not enough parameters", ) @@ -2211,7 +2219,7 @@ func (hdlr *Handlers) handleWho( if target == "" { hdlr.respondIRCError( writer, request, clientID, sessionID, - "461", nick, []string{"WHO"}, + "461", nick, []string{cmdWho}, "Not enough parameters", ) @@ -2499,7 +2507,7 @@ func (hdlr *Handlers) cleanupUser( if len(channels) > 0 { quitDBID, _, _ = hdlr.params.Database.InsertMessage( - ctx, "QUIT", nick, "", + ctx, cmdQuit, nick, "", nil, nil, nil, ) }