package main

import (
	"github.com/fasthttp/router"
	"github.com/valyala/fasthttp"
)

type stater func() error

const (
	healthyState       = "NeoFS HTTP Gateway is "
	defaultContentType = "text/plain; charset=utf-8"
)

func attachHealthy(r *router.Router, e stater) {
	r.GET("/-/ready/", func(ctx *fasthttp.RequestCtx) {
		ctx.SetStatusCode(fasthttp.StatusOK)
		ctx.SetBodyString(healthyState + "ready")
	})

	r.GET("/-/healthy/", func(c *fasthttp.RequestCtx) {
		code := fasthttp.StatusOK
		msg := "healthy"

		if err := e(); err != nil {
			msg = "unhealthy: " + err.Error()
			code = fasthttp.StatusBadRequest
		}

		c.Response.Reset()
		c.SetStatusCode(code)
		c.SetContentType(defaultContentType)
		c.SetBodyString(healthyState + msg)
	})
}