codeword/internal/controllers/stats.go
2024-03-03 23:18:42 +03:00

46 lines
1017 B
Go

package controllers
import (
"codeword/internal/models"
"codeword/internal/service"
"github.com/gofiber/fiber/v2"
)
type StatsController struct {
StatsService *service.StatsService
}
func NewStatsController(service *service.StatsService) *StatsController {
return &StatsController{
StatsService: service,
}
}
func (c *StatsController) Register(router fiber.Router) {
router.Get("/promocode/stats", c.Getstats)
}
func (c *StatsController) Name() string {
return ""
}
func (c *StatsController) Getstats(ctx *fiber.Ctx) error {
// Обработчик для метода Getstats
var request models.PromoCodeStatsReq
if err := ctx.BodyParser(&request); err != nil {
return ctx.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "Invalid request payload"})
}
response, err := c.StatsService.Getstats(ctx.Context(), &request)
if err != nil {
return ctx.Status(fiber.StatusInternalServerError).SendString("Internal Server Error")
}
return ctx.Status(fiber.StatusOK).JSON(response)
}