package conf import ( conf "ego/internal/conf/locales" "ego/internal/serializer" "ego/pkg/logger" "encoding/json" "errors" "fmt" "github.com/gin-gonic/gin" "github.com/go-playground/validator/v10" "go.uber.org/zap" "go.uber.org/zap/zapcore" ) // Ping 状态检查页面 // @Summary Get a message // @Description Get a message from the server // @Produce json // @Success 200 {object} map[string]string // @Router /ping [get] func Ping(c *gin.Context) { logger.Info(c, "Ping", zap.Field{Key: "msg", Type: zapcore.StringType, String: "Ping"}) c.JSON(200, serializer.Succ("tong", nil)) } // ErrorResponse 返回错误消息 func ErrorResponse(err error) serializer.Response { var ve validator.ValidationErrors if errors.As(err, &ve) { for _, e := range ve { field := conf.T(fmt.Sprintf("Field.%s", e.Field())) tag := conf.T(fmt.Sprintf("Tag.Valid.%s", e.Tag())) return serializer.ParamErr( fmt.Sprintf("%s%s", field, tag), err, ) } } var unmarshalTypeError *json.UnmarshalTypeError if errors.As(err, &unmarshalTypeError) { return serializer.ParamErr("JSON类型不匹配", err) } return serializer.ParamErr("参数错误", err) }