mirror of
https://github.com/GMWalletApp/epusdt.git
synced 2026-07-07 18:26:16 +00:00
c69b0d6c0c
- add rpc node purpose support for general/manual_verify/both - keep scan, WSS and health checks away from manual_verify nodes - fallback manual hash verification from general RPC to manual_verify RPC - add public cashier hash submission path and errno responses - update tests for RPC selection, failover and manual payment flows
52 lines
1.0 KiB
Go
52 lines
1.0 KiB
Go
package controller
|
|
|
|
import (
|
|
"github.com/GMWalletApp/epusdt/util/constant"
|
|
"github.com/GMWalletApp/epusdt/util/http"
|
|
"github.com/gookit/validate"
|
|
"github.com/gookit/validate/locales/zhcn"
|
|
"github.com/gookit/validate/locales/zhtw"
|
|
"github.com/labstack/echo/v4"
|
|
"sync"
|
|
)
|
|
|
|
var Ctrl = &BaseController{}
|
|
|
|
type validatorBase struct {
|
|
once sync.Once
|
|
validate *validate.Validation
|
|
}
|
|
|
|
type BaseController struct {
|
|
http.Resp
|
|
Validator validatorBase
|
|
Locale string
|
|
}
|
|
|
|
func (c *BaseController) GetLocale(ctx echo.Context) string {
|
|
c.Locale = ctx.Request().Header.Get("locale")
|
|
return c.Locale
|
|
}
|
|
|
|
func (c *BaseController) RegisterGlobal(ctx echo.Context) {
|
|
locale := c.GetLocale(ctx)
|
|
switch locale {
|
|
case "zh":
|
|
zhcn.RegisterGlobal()
|
|
case "zh-tw":
|
|
zhtw.RegisterGlobal()
|
|
default:
|
|
zhcn.RegisterGlobal()
|
|
}
|
|
}
|
|
|
|
func (c *BaseController) ValidateStruct(ctx echo.Context, i interface{}, scene ...string) error {
|
|
c.RegisterGlobal(ctx)
|
|
v := validate.Struct(i, scene...)
|
|
if v.Validate() {
|
|
return nil
|
|
} else {
|
|
return constant.ParamsMarshalErr
|
|
}
|
|
}
|