@@ -5,15 +5,14 @@ import (
55
66 "github.com/gin-gonic/gin"
77 "github.com/ventcode/betsy-backend/models"
8- "github.com/ventcode/betsy-backend/user"
98 "gorm.io/gorm"
109)
1110
1211type BetCreate struct {
13- UserID int `json:"user_id" binding:"required"`
14- ChallengeID int `json:"challenge_id" binding:"required"`
12+ UserID int `json:"user_id" binding:"required"`
13+ ChallengeID int `json:"challenge_id" binding:"required"`
1514 BetOnChallenger * bool `json:"bet_on_challenger" binding:"required"`
16- Amount uint `json:"amount" binding:"required,gt=0"`
15+ Amount uint `json:"amount" binding:"required,gt=0"`
1716}
1817
1918func Create (c * gin.Context , db * gorm.DB ) {
@@ -24,34 +23,34 @@ func Create(c *gin.Context, db *gorm.DB) {
2423 return
2524 }
2625
27- b := & models.Bet {}
28- ra := db .Find (b , "challenge_id = ? AND user_id = ?" , bc .ChallengeID , bc .UserID ).RowsAffected
26+ b := & models.Bet {}
27+ ra := db .Find (b , "challenge_id = ? AND user_id = ?" , bc .ChallengeID , bc .UserID ).RowsAffected
2928 if ra > 0 {
3029 c .JSON (http .StatusBadRequest , gin.H {"error" : "Bet for this challenge already exists" })
3130 return
3231 }
3332
3433 var chal models.Challenge
3534 rows_affected := db .Find (& chal , bc .ChallengeID ).RowsAffected
36- if rows_affected == 0 {
37- c .JSON (http .StatusBadRequest , gin.H {"error" : "Cannot find challenge that allows for betting" })
38- return
39- }
35+ if rows_affected == 0 {
36+ c .JSON (http .StatusBadRequest , gin.H {"error" : "Cannot find challenge that allows for betting" })
37+ return
38+ }
4039
41- usr := & user .User {}
40+ usr := & models .User {}
4241 rows_affected = db .Find (& usr , bc .UserID ).RowsAffected
43- if rows_affected == 0 {
44- c .JSON (http .StatusBadRequest , gin.H {"error" : "Cannot find user" })
45- return
46- }
47-
48- bet := & models.Bet {
49- UserID : bc .UserID ,
50- User : * usr ,
51- ChallengeID : bc .ChallengeID ,
52- Amount : bc .Amount ,
53- BetOnChallenger : * bc .BetOnChallenger ,
54- }
42+ if rows_affected == 0 {
43+ c .JSON (http .StatusBadRequest , gin.H {"error" : "Cannot find user" })
44+ return
45+ }
46+
47+ bet := & models.Bet {
48+ UserID : bc .UserID ,
49+ User : * usr ,
50+ ChallengeID : bc .ChallengeID ,
51+ Amount : bc .Amount ,
52+ BetOnChallenger : * bc .BetOnChallenger ,
53+ }
5554 err := db .Create (& bet ).Error
5655
5756 if err != nil {
@@ -60,3 +59,17 @@ func Create(c *gin.Context, db *gorm.DB) {
6059 c .JSON (http .StatusCreated , bet )
6160 }
6261}
62+
63+ func Show (c * gin.Context , db * gorm.DB ) {
64+ var bet models.Bet
65+
66+ id , _ := c .Params .Get ("id" )
67+ rows_affected := db .Preload ("User" ).Preload ("Challenge" ).Find (& bet , id ).RowsAffected
68+
69+ if rows_affected == 0 {
70+ c .JSON (http .StatusUnprocessableEntity , "Bet not found" )
71+ return
72+ } else {
73+ c .JSON (http .StatusOK , gin.H {"bet" : bet })
74+ }
75+ }
0 commit comments