codeword/internal/controller/admin/admin_recovery/recovery_controller.go

45 lines
1.1 KiB
Go
Raw Normal View History

package admin_recovery
import (
"fmt"
2024-11-22 11:22:08 +00:00
"gitea.pena/PenaSide/codeword/internal/services"
"github.com/gofiber/fiber/v2"
"go.uber.org/zap"
"time"
)
type Deps struct {
2025-01-02 10:44:52 +00:00
Logger *zap.Logger
Service *services.RecoveryService
}
type RecoveryController struct {
2025-01-02 10:44:52 +00:00
logger *zap.Logger
service *services.RecoveryService
}
func NewRecoveryController(deps Deps) *RecoveryController {
return &RecoveryController{
2025-01-02 10:44:52 +00:00
logger: deps.Logger,
service: deps.Service,
}
}
func (r *RecoveryController) HandleLiveness(c *fiber.Ctx) error {
return c.SendStatus(fiber.StatusOK)
}
func (r *RecoveryController) HandlePingDB(c *fiber.Ctx) error {
startTime := time.Now()
if err := r.service.Ping(c.Context()); err != nil {
r.logger.Error("Failed to ping the database", zap.Error(err))
return c.Status(fiber.StatusServiceUnavailable).SendString("DB ping failed")
}
duration := time.Since(startTime)
durationMillis := duration.Milliseconds()
responseMessage := fmt.Sprintf("DB ping success - Time taken: %d ms", durationMillis)
return c.Status(fiber.StatusOK).SendString(responseMessage)
}