// Just a catch-all for POST requests right now. Only allow default charset (utf8). func contentTypeMW(c *gin.Context) { if c.Request.Method == "POST" && c.ContentType() != "application/json" { c.AbortWithError(415, fmt.Errorf("Media type not supported: "+c.ContentType())) } else { c.Next() } }
func subIdParam(c *gin.Context) { subId := c.Param("id") if len(subId) != 64 || !util.IsHex(subId) { c.AbortWithError(400, fmt.Errorf("Malformed event id")) } c.Set("id", subId) c.Next() }
func keyParam(c *gin.Context) { key := c.Param("key") bts, err := hex.DecodeString(key) if err != nil { c.AbortWithError(400, err) } c.Set("keyBts", bts) c.Next() }
func addressParam(c *gin.Context) { addr := c.Param("address") if !util.IsAddress(addr) { c.AbortWithError(400, fmt.Errorf("Malformed address param: "+addr)) } bts, _ := hex.DecodeString(addr) c.Set("addrBts", bts) c.Next() }
func heightParam(c *gin.Context) { h, err := strconv.Atoi(c.Param("height")) if err != nil { c.AbortWithError(400, err) } if h < 0 { c.AbortWithError(400, fmt.Errorf("Negative number used as height.")) } c.Set("height", h) c.Next() }
// Used to enable log15 logging instead of the default Gin logging. // This is done mainly because we at Eris uses log15 in other components. func logHandler(c *gin.Context) { path := c.Request.URL.Path // Process request c.Next() clientIP := c.ClientIP() method := c.Request.Method statusCode := c.Writer.Status() comment := c.Errors.String() log.Info("[GIN] HTTP: "+clientIP, "Code", statusCode, "Method", method, "path", path, "error", comment) }
// TODO func peerAddressParam(c *gin.Context) { subId := c.Param("address") c.Set("address", subId) c.Next() }
func nameParam(c *gin.Context) { name := c.Param("key") c.Set("name", name) c.Next() }