package api import ( "encoding/json" "log" "net/http" "git.joco.dk/snr/fermentord/internal/configuration" "github.com/getsentry/sentry-go" "github.com/nats-io/nats.go" ) type API struct { config *configuration.Configuration configChangeCallback func() nc *nats.Conn } func NewAPI(nc *nats.Conn) *API { return &API{ nc: nc, } } func (a *API) HealthCheck(w http.ResponseWriter, r *http.Request) { // Check NATS switch a.nc.Status() { case nats.CONNECTED: break default: w.WriteHeader(http.StatusServiceUnavailable) w.Write([]byte("Unhealthy")) return } // Respond OK w.WriteHeader(http.StatusOK) w.Write([]byte("Healthy")) } func (a *API) GetConfig(w http.ResponseWriter, r *http.Request) { defer sentry.Recover() resp, err := json.MarshalIndent(a.config, "", " ") if err != nil { log.Panic(err) } w.Write(resp) }