31 lines
535 B
Go
31 lines
535 B
Go
package handlers
|
|
|
|
import (
|
|
"database/sql"
|
|
"net/http"
|
|
)
|
|
|
|
type HealthResponse struct {
|
|
Status string `json:"status"`
|
|
DBConnected bool `json:"db_connected"`
|
|
}
|
|
|
|
type HealthcheckService struct {
|
|
db *sql.DB
|
|
}
|
|
|
|
func NewHealthcheckService(db *sql.DB) *HealthcheckService {
|
|
return &HealthcheckService{db: db}
|
|
}
|
|
|
|
func (h *HealthcheckService) Health(w http.ResponseWriter, r *http.Request) {
|
|
response := HealthResponse{
|
|
Status: "ok",
|
|
}
|
|
|
|
err := h.db.Ping()
|
|
response.DBConnected = err == nil
|
|
|
|
JSON(w, http.StatusOK, response)
|
|
}
|