2023-12-16 00:27:00 +00:00
|
|
|
package web
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/labstack/echo/v4"
|
|
|
|
"github.com/thomiceli/opengist/internal/db"
|
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
|
|
|
func healthcheck(ctx echo.Context) error {
|
|
|
|
// Check database connection
|
|
|
|
dbOk := "ok"
|
|
|
|
httpStatus := 200
|
|
|
|
|
|
|
|
err := db.Ping()
|
|
|
|
if err != nil {
|
|
|
|
dbOk = "ko"
|
|
|
|
httpStatus = 503
|
|
|
|
}
|
|
|
|
|
|
|
|
return ctx.JSON(httpStatus, map[string]interface{}{
|
2024-01-04 15:45:57 +00:00
|
|
|
"opengist": "ok",
|
2023-12-16 00:27:00 +00:00
|
|
|
"database": dbOk,
|
|
|
|
"time": time.Now().Format(time.RFC3339),
|
|
|
|
})
|
|
|
|
}
|
2024-09-11 23:45:30 +00:00
|
|
|
|
|
|
|
// metrics is a dummy handler to satisfy the /metrics endpoint (for Prometheus, Openmetrics, etc.)
|
|
|
|
// until we have a proper metrics endpoint
|
|
|
|
func metrics(ctx echo.Context) error {
|
|
|
|
return ctx.String(200, "")
|
|
|
|
}
|