package routers import ( "net/http" "recipe-manager/data" "github.com/go-chi/chi/v5" ) type ServiceCheckRouter struct { cache_db *data.RedisCli // add service here! } func NewServiceCheckRouter(cache_db *data.RedisCli) *ServiceCheckRouter { return &ServiceCheckRouter{cache_db: cache_db} } func (nscr *ServiceCheckRouter) Route(r chi.Router) { r.Route("/health", func(r chi.Router) { r.Get("/redis", nscr.RedisHealth) }) } func (nscr *ServiceCheckRouter) RedisHealth(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") // {status: online/offline} err := nscr.cache_db.HealthCheck() if err != nil { w.WriteHeader(http.StatusInternalServerError) w.Write([]byte(`{"status":"Offline"}`)) return } // no error = online w.WriteHeader(http.StatusOK) w.Write([]byte(`{"status":"Online"}`)) }