mirror of
https://github.com/raseels-repos/golang-saas-starter-kit.git
synced 2025-06-06 23:46:29 +02:00
39 lines
903 B
Go
39 lines
903 B
Go
|
package handlers
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"net/http"
|
||
|
|
||
|
"geeks-accelerator/oss/saas-starter-kit/example-project/internal/platform/db"
|
||
|
"geeks-accelerator/oss/saas-starter-kit/example-project/internal/platform/web"
|
||
|
"go.opencensus.io/trace"
|
||
|
)
|
||
|
|
||
|
// Check provides support for orchestration health checks.
|
||
|
type Check struct {
|
||
|
MasterDB *db.DB
|
||
|
|
||
|
// ADD OTHER STATE LIKE THE LOGGER IF NEEDED.
|
||
|
}
|
||
|
|
||
|
// Health validates the service is healthy and ready to accept requests.
|
||
|
func (c *Check) Health(ctx context.Context, w http.ResponseWriter, r *http.Request, params map[string]string) error {
|
||
|
ctx, span := trace.StartSpan(ctx, "handlers.Check.Health")
|
||
|
defer span.End()
|
||
|
|
||
|
dbConn := c.MasterDB.Copy()
|
||
|
defer dbConn.Close()
|
||
|
|
||
|
if err := dbConn.StatusCheck(ctx); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
status := struct {
|
||
|
Status string `json:"status"`
|
||
|
}{
|
||
|
Status: "ok",
|
||
|
}
|
||
|
|
||
|
return web.Respond(ctx, w, status, http.StatusOK)
|
||
|
}
|