codeword/internal/controllers/recover.go

88 lines
2.1 KiB
Go
Raw Normal View History

2024-03-03 20:18:42 +00:00
package controllers
import (
"codeword/internal/models"
"codeword/internal/service"
"github.com/gofiber/fiber/v2"
)
type RecoverController struct {
RecoverService *service.RecoverService
}
func NewRecoverController(service *service.RecoverService) *RecoverController {
return &RecoverController{
RecoverService: service,
}
}
func (c *RecoverController) Register(router fiber.Router) {
2024-11-15 11:21:04 +00:00
router.Get("/liveness", c.Liveness)
2024-03-03 20:18:42 +00:00
router.Post("/recover", c.Recovery)
router.Get("/recover/{sign}", c.Recoverylink)
2024-11-15 11:21:04 +00:00
router.Get("/readiness", c.Readiness)
2024-03-03 20:18:42 +00:00
}
func (c *RecoverController) Name() string {
return ""
}
2024-11-15 11:21:04 +00:00
func (c *RecoverController) Liveness(ctx *fiber.Ctx) error {
// Обработчик для метода Liveness
2024-03-03 20:18:42 +00:00
2024-11-15 11:21:04 +00:00
err := c.RecoverService.Liveness(ctx.Context())
2024-03-03 20:18:42 +00:00
if err != nil {
return ctx.Status(fiber.StatusInternalServerError).SendString("Internal Server Error")
}
return ctx.SendStatus(fiber.StatusOK)
}
func (c *RecoverController) Recovery(ctx *fiber.Ctx) error {
// Обработчик для метода Recovery
var request models.RecoveryReq
if err := ctx.BodyParser(&request); err != nil {
return ctx.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "Invalid request payload"})
}
err := c.RecoverService.Recovery(ctx.Context(), &request)
if err != nil {
return ctx.Status(fiber.StatusInternalServerError).SendString("Internal Server Error")
}
return ctx.SendStatus(fiber.StatusOK)
}
func (c *RecoverController) Recoverylink(ctx *fiber.Ctx) error {
// Обработчик для метода Recoverylink
err := c.RecoverService.Recoverylink(ctx.Context())
if err != nil {
return ctx.Status(fiber.StatusInternalServerError).SendString("Internal Server Error")
}
return ctx.SendStatus(fiber.StatusOK)
}
2024-11-15 11:21:04 +00:00
func (c *RecoverController) Readiness(ctx *fiber.Ctx) error {
// Обработчик для метода Readiness
2024-03-03 20:18:42 +00:00
2024-11-15 11:21:04 +00:00
err := c.RecoverService.Readiness(ctx.Context())
2024-03-03 20:18:42 +00:00
if err != nil {
return ctx.Status(fiber.StatusInternalServerError).SendString("Internal Server Error")
}
return ctx.SendStatus(fiber.StatusOK)
}