Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
43 lines
1022 B
Go
43 lines
1022 B
Go
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,
|
|
})
|
|
}
|