DeployHelper/internal/conf/common.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)
}