Commit 0d21d0b3 authored by szh's avatar szh

add binding

parent e2307946
......@@ -64,12 +64,13 @@ func RecordMineTime(c *gin.Context) {
appG := app.Gin{C: c}
var req pai_service.ReqMineTime
logging.Info("req:",req)
err := c.ShouldBindJSON(&req)
if err != nil {
appG.Response(http.StatusOK, e.ERROR, nil)
}
logging.Info("req:",req)
var stat stat_service.RaspMinerStat
err = stat.SetMineTime(req.Addr,req.Flag)
if err != nil {
......
......@@ -5,11 +5,23 @@ import (
_ "chain33-pai/docs"
"chain33-pai/routers/api/v1"
"net/http"
"reflect"
"strconv"
"gopkg.in/go-playground/validator.v8"
"github.com/gin-gonic/gin/binding"
"chain33-pai/pkg/logging"
)
// InitRouter initialize routing information
func InitRouter() *gin.Engine {
r := gin.Default()
//Custom Validators
if v, ok := binding.Validator.Engine().(*validator.Validate); ok {
err := v.RegisterValidation("LegalNumber", CheckNumber)
if err != nil {
logging.Error("gin custom validator init error, field:LegalNumber")
}
}
r.Use(gin.Logger())
r.Use(gin.Recovery())
r.Use(Cors())
......@@ -77,3 +89,30 @@ func Cors() gin.HandlerFunc {
c.Next()
}
}
func CheckNumber(
v *validator.Validate, topStruct reflect.Value, currentStructOrField reflect.Value,
field reflect.Value, fieldType reflect.Type, fieldKind reflect.Kind, param string,
) bool {
val := field.Interface()
switch val.(type) {
case int:
return true
case string:
if val.(string) == "" {
return true
}
_, err := strconv.ParseInt(val.(string), 10, 64)
if err != nil {
return false
}
return true
case int64:
return true
default:
//utility_log.Error("func ToInt error unknow type")
return false
}
}
......@@ -48,14 +48,14 @@ type MinedTxInfo struct {
type ReqTicketInfo struct {
Addr string `json:"addr" validate:"requried"`
Addr string `json:"addr" binding:"requried"`
Page int32 `json:"page"`
Pagesize int32 `json:"pagesize"`
Detail bool `json:"detail"`
}
type ReqMineTime struct {
Addr string `json:"addr" validate:"requried"`
Addr string `json:"addr" binding:"requried"`
Flag string `json:"flag"`
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment