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

51 lines
1.2 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 {
Logger *zap.Logger
Service *services.RecoveryService
DefaultURL string
RecoveryURL string
}
type RecoveryController struct {
logger *zap.Logger
service *services.RecoveryService
defaultURL string
recoveryURL string
}
func NewRecoveryController(deps Deps) *RecoveryController {
return &RecoveryController{
logger: deps.Logger,
service: deps.Service,
defaultURL: deps.DefaultURL,
recoveryURL: deps.RecoveryURL,
}
}
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)
}