Boost Azure Demo
This commit is contained in:
46
Backend/internal/handlers/web/health/health.go
Normal file
46
Backend/internal/handlers/web/health/health.go
Normal file
@@ -0,0 +1,46 @@
|
||||
// Path: Backend/internal/handlers/health/health.go
|
||||
|
||||
package health
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"boostai-backend/internal/database"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
)
|
||||
|
||||
type Handler struct {
|
||||
environment string
|
||||
db *database.DB
|
||||
}
|
||||
|
||||
func NewHandler(environment string, db *database.DB) *Handler {
|
||||
return &Handler{environment: environment, db: db}
|
||||
}
|
||||
|
||||
func (h *Handler) Check(c *fiber.Ctx) error {
|
||||
status := "healthy"
|
||||
databaseStatus := "up"
|
||||
httpStatus := fiber.StatusOK
|
||||
|
||||
if h.db != nil {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
|
||||
defer cancel()
|
||||
|
||||
if err := h.db.Health(ctx); err != nil {
|
||||
status = "unhealthy"
|
||||
databaseStatus = "down"
|
||||
httpStatus = fiber.StatusServiceUnavailable
|
||||
}
|
||||
}
|
||||
|
||||
return c.Status(httpStatus).JSON(fiber.Map{
|
||||
"status": status,
|
||||
"service": "boostai-backend",
|
||||
"environment": h.environment,
|
||||
"database": databaseStatus,
|
||||
"timestamp": time.Now().UTC().Format(time.RFC3339),
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user