mirror of
https://github.com/gotify/server.git
synced 2024-01-28 15:20:56 +03:00
47 lines
956 B
Go
47 lines
956 B
Go
package api
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/gotify/server/v2/model"
|
|
)
|
|
|
|
// The HealthDatabase interface for encapsulating database access.
|
|
type HealthDatabase interface {
|
|
Ping() error
|
|
}
|
|
|
|
// The HealthAPI provides handlers for the health information.
|
|
type HealthAPI struct {
|
|
DB HealthDatabase
|
|
}
|
|
|
|
// Health returns health information.
|
|
// swagger:operation GET /health health getHealth
|
|
//
|
|
// Get health information.
|
|
//
|
|
// ---
|
|
// produces: [application/json]
|
|
// responses:
|
|
// 200:
|
|
// description: Ok
|
|
// schema:
|
|
// $ref: "#/definitions/Health"
|
|
// 500:
|
|
// description: Ok
|
|
// schema:
|
|
// $ref: "#/definitions/Health"
|
|
func (a *HealthAPI) Health(ctx *gin.Context) {
|
|
if err := a.DB.Ping(); err != nil {
|
|
ctx.JSON(500, model.Health{
|
|
Health: model.StatusOrange,
|
|
Database: model.StatusRed,
|
|
})
|
|
return
|
|
}
|
|
ctx.JSON(200, model.Health{
|
|
Health: model.StatusGreen,
|
|
Database: model.StatusGreen,
|
|
})
|
|
}
|