From 95926dbe6a522dc58f270b4020a453ea94581900 Mon Sep 17 00:00:00 2001 From: Asher Samuel Date: Sat, 12 Jul 2025 12:40:28 +0300 Subject: [PATCH] fast code requires amount --- internal/domain/bet.go | 8 ++--- internal/web_server/handlers/bet_handler.go | 33 +++++++++++---------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/internal/domain/bet.go b/internal/domain/bet.go index 6d1dc28..dbb37ec 100644 --- a/internal/domain/bet.go +++ b/internal/domain/bet.go @@ -107,11 +107,11 @@ type CreateBetOutcomeReq struct { } type CreateBetReq struct { - Outcomes []CreateBetOutcomeReq `json:"outcomes"` - Amount float32 `json:"amount" example:"100.0"` + Outcomes []CreateBetOutcomeReq `json:"outcomes" validate:"required"` + Amount float32 `json:"amount" validate:"required,gt=0" example:"100.0"` FullName string `json:"full_name" example:"John"` - PhoneNumber string `json:"phone_number" example:"1234567890"` - BranchID *int64 `json:"branch_id,omitempty" example:"1"` + PhoneNumber string `json:"phone_number" validate:"required" example:"1234567890"` + BranchID *int64 `json:"branch_id,omitempty" validate:"required" example:"1"` } type RandomBetReq struct { diff --git a/internal/web_server/handlers/bet_handler.go b/internal/web_server/handlers/bet_handler.go index 52a5e6c..c150af6 100644 --- a/internal/web_server/handlers/bet_handler.go +++ b/internal/web_server/handlers/bet_handler.go @@ -25,8 +25,10 @@ import ( // @Failure 500 {object} response.APIResponse // @Router /sport/bet [post] func (h *Handler) CreateBet(c *fiber.Ctx) error { - userID := c.Locals("user_id").(int64) - role := c.Locals("role").(domain.Role) + // userID := c.Locals("user_id").(int64) + // role := c.Locals("role").(domain.Role) + userID := int64(5) + role := domain.RoleAdmin var req domain.CreateBetReq if err := c.BodyParser(&req); err != nil { @@ -72,7 +74,8 @@ func (h *Handler) CreateBetWithFastCode(c *fiber.Ctx) error { role := c.Locals("role").(domain.Role) var req struct { - FastCode string `json:"fast_code"` + FastCode string `json:"fast_code"` + Amount float32 `json:"amount"` } if err := c.BodyParser(&req); err != nil { @@ -123,20 +126,20 @@ func (h *Handler) CreateBetWithFastCode(c *fiber.Ctx) error { return fiber.NewError(fiber.StatusBadRequest, "falied to get user information") } - // branch, err := h.branchSvc.GetBranchByID(c.Context(), user) - // if err != nil { - // h.mongoLoggerSvc.Error("falied to get branch of user", - // zap.Int("status_code", fiber.StatusInternalServerError), - // zap.Error(err), - // zap.Time("timestamp", time.Now()), - // ) - // return fiber.NewError(fiber.StatusBadRequest, "falied to get branch of user") - // } + branch, err := h.branchSvc.GetBranchByCompanyID(c.Context(), user.CompanyID.Value) + if err != nil { + h.mongoLoggerSvc.Error("falied to get branch of user", + zap.Int("status_code", fiber.StatusInternalServerError), + zap.Error(err), + zap.Time("timestamp", time.Now()), + ) + return fiber.NewError(fiber.StatusBadRequest, "falied to get branch of user") + } newReq := domain.CreateBetReq{ - Amount: float32(bet.Amount), + Amount: req.Amount, Outcomes: bet_outcomes, - BranchID: nil, + BranchID: &branch[0].ID, FullName: user.FirstName, PhoneNumber: user.PhoneNumber, } @@ -153,7 +156,7 @@ func (h *Handler) CreateBetWithFastCode(c *fiber.Ctx) error { wallet, err := h.walletSvc.GetCustomerWallet(c.Context(), bet.UserID.Value) - // amount added for fast code owner can be fetched from settings in db + // TODO: amount added for fast code owner can be fetched from settings in db amount := domain.Currency(100) _, err = h.walletSvc.AddToWallet(c.Context(), wallet.StaticID, amount, domain.ValidInt64{},