47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
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)
|
|
}
|