player Info fix

This commit is contained in:
Yared Yemane 2025-06-20 23:14:06 +03:00
parent 68ac9f6a96
commit 5cd5d2f143
3 changed files with 14 additions and 14 deletions

View File

@ -52,7 +52,7 @@ func (s *service) GenerateGameLaunchURL(ctx context.Context, userID int64, gameI
sessionId := fmt.Sprintf("%d-%s-%d", userID, gameID, time.Now().UnixNano())
token, err := jwtutil.CreatePopOKJwt(
userID,
user.PhoneNumber,
user.FirstName,
currency,
"en",
mode,
@ -166,6 +166,8 @@ func (s *service) HandleCallback(ctx context.Context, callback *domain.PopOKCall
func (s *service) GetPlayerInfo(ctx context.Context, req *domain.PopOKPlayerInfoRequest) (*domain.PopOKPlayerInfoResponse, error) {
claims, err := jwtutil.ParsePopOKJwt(req.ExternalToken, s.config.PopOK.SecretKey)
fmt.Printf("\n\nClaims: %+v\n\n", claims)
fmt.Printf("\n\nExternal token: %+v\n\n", req.ExternalToken)
if err != nil {
s.logger.Error("Failed to parse JWT", "error", err)
return nil, fmt.Errorf("invalid token")
@ -232,10 +234,12 @@ func (s *service) ProcessBet(ctx context.Context, req *domain.PopOKBetRequest) (
func (s *service) ProcessWin(ctx context.Context, req *domain.PopOKWinRequest) (*domain.PopOKWinResponse, error) {
// 1. Validate token and get user ID
claims, err := jwtutil.ParsePopOKJwt(req.ExternalToken, s.config.PopOK.SecretKey)
// if err != nil {
// s.logger.Error("Invalid token in win request", "error", err)
// return nil, fmt.Errorf("invalid token")
// }
if err != nil {
s.logger.Error("Invalid token in win request", "error", err)
return nil, fmt.Errorf("invalid token")
}
fmt.Printf("\n\nClaims: %+v\n\n", claims)
// 2. Check for duplicate transaction (idempotency)
existingTx, err := s.repo.GetVirtualGameTransactionByExternalID(ctx, req.TransactionID)

View File

@ -94,7 +94,7 @@ func (h *Handler) HandlePlayerInfo(c *fiber.Ctx) error {
return fiber.NewError(fiber.StatusInternalServerError, err.Error())
}
return response.WriteJSON(c, fiber.StatusOK, "Player info retrieved", resp, nil)
return c.Status(fiber.StatusOK).JSON(resp)
}
func (h *Handler) HandleBet(c *fiber.Ctx) error {

View File

@ -57,24 +57,20 @@ func CreateJwt(userId int64, Role domain.Role, CompanyID domain.ValidInt64, key
func CreatePopOKJwt(userID int64, username, currency, lang, mode, sessionID, key string, expiry time.Duration) (string, error) {
token := jwt.NewWithClaims(jwt.SigningMethodHS256, PopOKClaim{
RegisteredClaims: jwt.RegisteredClaims{
Issuer: "github.com/lafetz/snippitstash",
IssuedAt: jwt.NewNumericDate(time.Now()),
Issuer: "fortune-bet",
Audience: jwt.ClaimStrings{"popokgaming.com"},
IssuedAt: jwt.NewNumericDate(time.Now()),
NotBefore: jwt.NewNumericDate(time.Now()),
ExpiresAt: jwt.NewNumericDate(time.Now().Add(expiry)),
},
UserID: userID,
Username: username,
Username: username, // ✅ Must be a valid string
Currency: currency,
Lang: lang,
Mode: mode,
SessionID: sessionID,
})
jwtToken, err := token.SignedString([]byte(key))
if err != nil {
return "", err
}
return jwtToken, nil
return token.SignedString([]byte(key))
}
func ParseJwt(jwtToken string, key string) (*UserClaim, error) {