30 lines
549 B
Go
30 lines
549 B
Go
|
|
package handlers
|
||
|
|
|
||
|
|
import (
|
||
|
|
"net/http"
|
||
|
|
"time"
|
||
|
|
)
|
||
|
|
|
||
|
|
const Version = "1.0.0"
|
||
|
|
|
||
|
|
var startTime = time.Now()
|
||
|
|
|
||
|
|
type HealthHandler struct{}
|
||
|
|
|
||
|
|
func NewHealthHandler() *HealthHandler {
|
||
|
|
return &HealthHandler{}
|
||
|
|
}
|
||
|
|
|
||
|
|
func (h *HealthHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||
|
|
if r.Method != http.MethodGet {
|
||
|
|
writeError(w, http.StatusMethodNotAllowed, "method not allowed")
|
||
|
|
return
|
||
|
|
}
|
||
|
|
|
||
|
|
writeJSON(w, http.StatusOK, map[string]any{
|
||
|
|
"ok": true,
|
||
|
|
"version": Version,
|
||
|
|
"uptime": time.Since(startTime).Truncate(time.Second).String(),
|
||
|
|
})
|
||
|
|
}
|