package network import ( "github.com/fasthttp/router" svc "github.com/nspcc-dev/neofs-node/cmd/neofs-node/modules/bootstrap" "github.com/valyala/fasthttp" "go.uber.org/dig" ) type ( handlerParams struct { dig.In Healthy svc.HealthyClient } ) const ( healthyState = "NeoFS node is " defaultContentType = "text/plain; charset=utf-8" ) func newHTTPHandler(p handlerParams) (fasthttp.RequestHandler, error) { r := router.New() r.RedirectTrailingSlash = true r.GET("/-/ready/", func(c *fasthttp.RequestCtx) { c.SetStatusCode(fasthttp.StatusOK) c.SetBodyString(healthyState + "ready") }) r.GET("/-/healthy/", func(c *fasthttp.RequestCtx) { code := fasthttp.StatusOK msg := "healthy" err := p.Healthy.Healthy() if err != nil { code = fasthttp.StatusBadRequest msg = "unhealthy: " + err.Error() } c.Response.Reset() c.SetStatusCode(code) c.SetContentType(defaultContentType) c.SetBodyString(healthyState + msg) }) return r.Handler, nil }