github.com/oinume/lekcije@v0.0.0-20231017100347-5b4c5eb6ab24/backend/interface/http/api.go (about) 1 package http 2 3 import ( 4 "net/http" 5 6 "github.com/oinume/lekcije/backend/domain/config" 7 "github.com/oinume/lekcije/backend/model" 8 ) 9 10 // GET /api/status 11 func (s *server) getAPIStatus(w http.ResponseWriter, r *http.Request) { 12 data := map[string]bool{ 13 "db": true, 14 } 15 16 db, err := model.OpenDB(config.DefaultVars.DBURL(), 1, config.DefaultVars.DebugSQL) 17 if err == nil { 18 defer db.Close() 19 if err := db.DB().Ping(); err != nil { 20 data["db"] = false 21 } 22 } else { 23 data["db"] = false 24 } 25 26 for _, status := range data { 27 if !status { 28 writeJSON(w, http.StatusInternalServerError, data) 29 return 30 } 31 } 32 writeJSON(w, http.StatusOK, data) 33 }