66 lines
2.4 KiB
Go
66 lines
2.4 KiB
Go
package handlers
|
|
|
|
import (
|
|
"github.com/SamuelTariku/FortuneBet-Backend/internal/web_server/response"
|
|
"github.com/gofiber/fiber/v2"
|
|
)
|
|
|
|
func (h *Handler) CreateBonusMultiplier(c *fiber.Ctx) error {
|
|
var req struct {
|
|
Multiplier float32 `json:"multiplier"`
|
|
}
|
|
|
|
if err := c.BodyParser(&req); err != nil {
|
|
h.logger.Error("failed to parse bonus multiplier", "error", err)
|
|
return response.WriteJSON(c, fiber.StatusBadRequest, "Invalid request", err, nil)
|
|
}
|
|
|
|
// currently only one multiplier is allowed
|
|
// we can add an active bool in the db and have mulitple bonus if needed
|
|
multipliers, err := h.bonusSvc.GetBonusMultiplier(c.Context())
|
|
if err != nil {
|
|
h.logger.Error("failed to get bonus multiplier", "error", err)
|
|
return response.WriteJSON(c, fiber.StatusBadRequest, "Invalid request", err, nil)
|
|
}
|
|
|
|
if len(multipliers) > 0 {
|
|
return response.WriteJSON(c, fiber.StatusBadRequest, "Invalid request", err, nil)
|
|
}
|
|
|
|
if err := h.bonusSvc.CreateBonusMultiplier(c.Context(), req.Multiplier); err != nil {
|
|
h.logger.Error("failed to create bonus multiplier", "error", err)
|
|
return response.WriteJSON(c, fiber.StatusInternalServerError, "failed to create bonus mulitplier", nil, nil)
|
|
}
|
|
|
|
return response.WriteJSON(c, fiber.StatusOK, "Create bonus mulitplier successfully", nil, nil)
|
|
}
|
|
|
|
func (h *Handler) GetBonusMultiplier(c *fiber.Ctx) error {
|
|
multipliers, err := h.bonusSvc.GetBonusMultiplier(c.Context())
|
|
if err != nil {
|
|
h.logger.Error("failed to get bonus multiplier", "error", err)
|
|
return response.WriteJSON(c, fiber.StatusBadRequest, "Invalid request", err, nil)
|
|
}
|
|
|
|
return response.WriteJSON(c, fiber.StatusOK, "Fetched bonus mulitplier successfully", multipliers, nil)
|
|
}
|
|
|
|
func (h *Handler) UpdateBonusMultiplier(c *fiber.Ctx) error {
|
|
var req struct {
|
|
ID int64 `json:"id"`
|
|
Multiplier float32 `json:"multiplier"`
|
|
}
|
|
|
|
if err := c.BodyParser(&req); err != nil {
|
|
h.logger.Error("failed to parse bonus multiplier", "error", err)
|
|
return response.WriteJSON(c, fiber.StatusBadRequest, "Invalid request", err, nil)
|
|
}
|
|
|
|
if err := h.bonusSvc.UpdateBonusMultiplier(c.Context(), req.ID, req.Multiplier); err != nil {
|
|
h.logger.Error("failed to update bonus multiplier", "error", err)
|
|
return response.WriteJSON(c, fiber.StatusInternalServerError, "failed to update bonus mulitplier", nil, nil)
|
|
}
|
|
|
|
return response.WriteJSON(c, fiber.StatusOK, "Updated bonus mulitplier successfully", nil, nil)
|
|
}
|