package healthapi import ( "videoweb/app/api/proto" "videoweb/app/service/healthser" "videoweb/pub/common/log" "videoweb/pub/common/srvdef" "github.com/gin-gonic/gin" ) // HealthCheck 健康检查接口 func HealthCheck(ctx *gin.Context) { req := &proto.HealthCheckRequest{} if err := ctx.ShouldBindJSON(req); err != nil { log.Warn("health check bind error", log.E(err)) respond(ctx, srvdef.ErrParamError, err.Error(), nil) return } log.Info("health check request", log.Any("req", req)) data, serr := healthser.HealthCheck(ctx.Request.Context(), req) if serr != nil { log.Warn("health check failed", log.E(serr), log.Any("req", req)) respond(ctx, serr.Code, serr.GetMsg(), nil) return } log.Info("health check response", log.Any("resp", data)) respond(ctx, srvdef.Success, "success", data) } func respond(ctx *gin.Context, code srvdef.CodeType, msg string, data interface{}) { if msg == "" { msg = code.Msg() } ctx.JSON(200, gin.H{ "code": code, "msg": msg, "data": data, }) }