Skip to content

Commit b96c965

Browse files
committed
added: getTeamInfo separeated from sendTeamInfo for MemberJoin
1 parent 4244584 commit b96c965

1 file changed

Lines changed: 45 additions & 45 deletions

File tree

backend/app/server/teams.go

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,6 @@ type JoinPayload struct {
4444
TeamId string `json:"teamId"`
4545
}
4646

47-
type Response struct {
48-
teamData GetTeamResponse
49-
}
50-
5147
func MD5HashCode(teamName string) (string, error) {
5248
randNum, err := rand.Int(rand.Reader, big.NewInt(math.MaxInt64))
5349
if err != nil {
@@ -72,6 +68,7 @@ func (server *Server) signupsAllowed(eventId string) bool {
7268
}
7369

7470
func (server *Server) GetAllTeams(ctx *gin.Context) {
71+
// what if there's no session => no user id
7572
teams, err := database.GetTeams()
7673
if err == nil {
7774
ctx.JSON(http.StatusOK, teams)
@@ -84,43 +81,23 @@ func (server *Server) GetAllTeams(ctx *gin.Context) {
8481
func (server *Server) GetUserTeams(ctx *gin.Context) {
8582
session := sessions.Default(ctx)
8683
userId := session.Get("userId")
87-
strUserId := userId.(string)
88-
8984
if userId == nil {
9085
ctx.Status(http.StatusNotFound)
9186
return
9287
}
93-
// var teamResponse GetTeamResponse
94-
// var teamsResponse []GetTeamResponse
88+
strUserId := userId.(string)
9589

9690
teams, err := database.GetUserTeams(convert.StringToUUID(strUserId))
9791
if err != nil {
9892
ctx.Status(http.StatusInternalServerError)
9993
return
10094
}
101-
102-
//1. join databse to return members
10395
ctx.JSON(http.StatusOK, teams)
104-
105-
// add all the GetTeamResponse to []GetTeamResponse
106-
// loop through teams, get team id
107-
// assign each team to teamResponse type..
108-
109-
}
110-
func (server *Server) sendTeamInfo(teamResponse GetTeamResponse) {
111-
router := gin.Default()
112-
router.POST("/teams/browse", func(ctx *gin.Context) {
113-
response := Response {
114-
teamData: teamResponse,
115-
}
116-
ctx.JSON(http.StatusOK, response)
117-
})
11896
}
11997

12098
// stepp 4: GET team info
12199
// purpose is to construct the DBTeamMemberInfo
122-
func (server *Server) GetTeamInfo(ctx *gin.Context) {
123-
id := convert.StringToUUID(ctx.Param("id"))
100+
func (server *Server) GetTeamInfo(id pgtype.UUID) (*GetTeamResponse, error) {
124101

125102
var teamResponse GetTeamResponse
126103
var team database.DBTeam
@@ -130,34 +107,39 @@ func (server *Server) GetTeamInfo(ctx *gin.Context) {
130107
team, err := database.GetTeam(id)
131108
if err != nil {
132109
logger.Error("failed to get team: %v", err)
133-
ctx.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("failed to get team: %v", err)})
134-
return
110+
return nil, err
135111
}
136112

137113
event, err = database.GetEvent(team.EventId)
138114
if err != nil {
139115
logger.Error("failed to get event: %v", err)
140-
ctx.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("failed to get event: %v", err)})
141-
return
116+
return nil, err
142117
}
143118

144119
members, err = database.GetMembersByTeamId(team.Id)
145120
if err != nil {
146121
logger.Error("failed to get event: %v", err)
147-
ctx.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("failed to get members: %v", err)})
148-
return
122+
return nil, err
149123
}
150124

151125
// attach all 3 structures to GetTeamResponse --> nested structs turn into nested JSON (with ctx.JSON)
152126
teamResponse.Team = &team
153127
teamResponse.Event = &event
154128
teamResponse.Members = members
155-
156-
server.sendTeamInfo(teamResponse)
157-
//ctx.JSON(http.StatusOK, teamResponse)
129+
130+
return &teamResponse, nil
158131
}
159132

133+
func (server *Server) sendTeamInfo(ctx *gin.Context) {
134+
id := convert.StringToUUID(ctx.Param("id"))
135+
136+
teamResponse, err := server.GetTeamInfo(id)
137+
if err != nil {
138+
ctx.Status(http.StatusBadRequest)
139+
}
160140

141+
ctx.JSON(http.StatusOK, teamResponse)
142+
}
161143

162144
func (server *Server) GetTeamInfoByInviteCode(ctx *gin.Context) {
163145
inviteCode := ctx.Param("invitecode")
@@ -205,7 +187,10 @@ func (server *Server) CreateTeam(ctx *gin.Context) {
205187
// Step 4: Post Team Data API (TWO PARTS 1) create team 2) add team members)
206188
session := sessions.Default(ctx)
207189
userId := session.Get("userId")
208-
190+
if userId == nil {
191+
ctx.Status(http.StatusBadRequest)
192+
return
193+
}
209194
strUserId := userId.(string)
210195

211196
var team database.DBTeam
@@ -300,28 +285,43 @@ func (server *Server) UpdateTeamMembers(ctx *gin.Context) {
300285
ctx.Status(http.StatusBadRequest)
301286
return
302287
}
303-
304288
//database.AddTeamMember(convert.StringToUUID(userId.(string), ))
305289
}
306290

307291
func (server *Server) MemberJoin(ctx *gin.Context) {
308-
309292
session := sessions.Default(ctx)
310293
userId := session.Get("userId")
311-
312294
fmt.Println(userId)
295+
296+
if userId == nil {
297+
ctx.Status(http.StatusNotFound)
298+
return
299+
}
300+
strUserId := userId.(string)
301+
uuidUserId := convert.StringToUUID(strUserId)
302+
303+
313304
var teamId JoinPayload
314305

315306
if err := ctx.ShouldBindJSON(&teamId); err != nil {
316307
ctx.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
308+
return
317309
}
318310
fmt.Println(teamId) // this prints {cc457e3e-210a-4d5d-83d8-0899426dfc93}
311+
uuidTeamId := convert.StringToUUID(teamId.TeamId)
312+
teamInfo, err := server.GetTeamInfo(uuidTeamId)
313+
if err != nil {
314+
ctx.Status(http.StatusUnauthorized)
315+
return
316+
}
319317

320-
// call getteaminfo
321-
//verify team is public
322-
//var team
323-
//var isPublic bool = team.ispublic
324-
318+
// verifies team is public
319+
var isPublic string = teamInfo.Team.Visibility
320+
if isPublic == "private" {
321+
ctx.Status(http.StatusForbidden)
322+
return
323+
}
324+
database.AddTeamMember(uuidUserId, uuidTeamId, "member")
325325
}
326326

327327
func (server *Server) MemberInvite(ctx *gin.Context) {
@@ -352,7 +352,7 @@ func (server *Server) SetupTeamRoutes() {
352352
group.POST("/join", server.MemberJoin)
353353
group.POST("/:invitecode", server.MemberInvite)
354354
//group.GET("/", server.GetAllTeams)
355-
group.GET("/:id", server.GetTeamInfo)
355+
group.GET("/:id", server.sendTeamInfo)
356356
group.GET("/invite/:invitecode", server.GetTeamInfoByInviteCode)
357357
// group.PUT("/:id", server.UpdateTeam)
358358
// Step 3: Post Team Data API

0 commit comments

Comments
 (0)