package controllers import ( "codeword/internal/models" "codeword/internal/service" "github.com/gofiber/fiber/v2" ) type PromocodeController struct { PromocodeService *service.PromocodeService } func NewPromocodeController(service *service.PromocodeService) *PromocodeController { return &PromocodeController{ PromocodeService: service, } } func (c *PromocodeController) Register(router fiber.Router) { router.Post("/promocode/activate", c.Activate) router.Post("/promocode/getList", c.Getlist) router.Delete("/promocode/{promocodeID}", c.Delete) router.Post("/promocode/create", c.Createpromocode) router.Put("/promocode/edit", c.Editpromocode) router.Post("/promocode/fastlink", c.Createfastlink) } func (c *PromocodeController) Name() string { return "" } func (c *PromocodeController) Activate(ctx *fiber.Ctx) error { // Обработчик для метода Activate var request models.ActivateReq if err := ctx.BodyParser(&request); err != nil { return ctx.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "Invalid request payload"}) } response, err := c.PromocodeService.Activate(ctx.Context(), &request) if err != nil { return ctx.Status(fiber.StatusInternalServerError).SendString("Internal Server Error") } return ctx.Status(fiber.StatusOK).JSON(response) } func (c *PromocodeController) Getlist(ctx *fiber.Ctx) error { // Обработчик для метода Getlist var request models.GetPromoCodesListReq if err := ctx.BodyParser(&request); err != nil { return ctx.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "Invalid request payload"}) } response, err := c.PromocodeService.Getlist(ctx.Context(), &request) if err != nil { return ctx.Status(fiber.StatusInternalServerError).SendString("Internal Server Error") } return ctx.Status(fiber.StatusOK).JSON(response) } func (c *PromocodeController) Delete(ctx *fiber.Ctx) error { // Обработчик для метода Delete err := c.PromocodeService.Delete(ctx.Context()) if err != nil { return ctx.Status(fiber.StatusInternalServerError).SendString("Internal Server Error") } return ctx.SendStatus(fiber.StatusOK) } func (c *PromocodeController) Createpromocode(ctx *fiber.Ctx) error { // Обработчик для метода Createpromocode var request models.PromoCodeReq if err := ctx.BodyParser(&request); err != nil { return ctx.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "Invalid request payload"}) } response, err := c.PromocodeService.Createpromocode(ctx.Context(), &request) if err != nil { return ctx.Status(fiber.StatusInternalServerError).SendString("Internal Server Error") } return ctx.Status(fiber.StatusOK).JSON(response) } func (c *PromocodeController) Editpromocode(ctx *fiber.Ctx) error { // Обработчик для метода Editpromocode var request models.EditPromoCodeReq if err := ctx.BodyParser(&request); err != nil { return ctx.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "Invalid request payload"}) } response, err := c.PromocodeService.Editpromocode(ctx.Context(), &request) if err != nil { return ctx.Status(fiber.StatusInternalServerError).SendString("Internal Server Error") } return ctx.Status(fiber.StatusOK).JSON(response) } func (c *PromocodeController) Createfastlink(ctx *fiber.Ctx) error { // Обработчик для метода Createfastlink var request models.CreateFastLinkReq if err := ctx.BodyParser(&request); err != nil { return ctx.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "Invalid request payload"}) } response, err := c.PromocodeService.Createfastlink(ctx.Context(), &request) if err != nil { return ctx.Status(fiber.StatusInternalServerError).SendString("Internal Server Error") } return ctx.Status(fiber.StatusOK).JSON(response) }