func parseTxModifier(c *gin.Context) { hold := c.Query("hold") if hold == "true" { c.Set("hold", true) } else if hold != "" { if hold != "false" { c.Writer.WriteHeader(400) c.Writer.Write([]byte("tx hold must be either 'true' or 'false', found: " + hold)) c.Abort() } } }
func parseSearchQuery(c *gin.Context) { q := c.Query("q") if q != "" { data, err := _parseSearchQuery(q) if err != nil { c.Writer.WriteHeader(400) c.Writer.Write([]byte(err.Error())) c.Abort() // c.AbortWithError(400, err) return } c.Set("filters", data) } }
func roomGET(c *gin.Context) { roomid := c.Param("roomid") nick := c.Query("nick") if len(nick) < 2 { nick = "" } if len(nick) > 13 { nick = nick[0:12] + "..." } c.HTML(200, "room_login.templ.html", gin.H{ "roomid": roomid, "nick": nick, "timestamp": time.Now().Unix(), }) }
func roomPOST(c *gin.Context) { roomid := c.Param("roomid") nick := c.Query("nick") message := c.PostForm("message") message = strings.TrimSpace(message) validMessage := len(message) > 1 && len(message) < 200 validNick := len(nick) > 1 && len(nick) < 14 if !validMessage || !validNick { c.JSON(400, gin.H{ "status": "failed", "error": "the message or nickname is too long", }) return } post := gin.H{ "nick": html.EscapeString(nick), "message": html.EscapeString(message), } messages.Add("inbound", 1) room(roomid).Submit(post) c.JSON(200, post) }