Feat: add exit room
This commit is contained in:
		| @@ -1,6 +1,7 @@ | ||||
| package models | ||||
|  | ||||
| import ( | ||||
| 	"golias/utils" | ||||
| 	"time" | ||||
|  | ||||
| 	"github.com/rs/xid" | ||||
| @@ -200,3 +201,19 @@ type FullInfo struct { | ||||
| 	Room  *Room | ||||
| 	List  []*Room | ||||
| } | ||||
|  | ||||
| func (f *FullInfo) ExitRoom() *Room { | ||||
| 	f.Room.PlayerList = utils.RemoveFromSlice(f.State.Username, f.Room.PlayerList) | ||||
| 	f.Room.RedTeam.Guessers = utils.RemoveFromSlice(f.State.Username, f.Room.RedTeam.Guessers) | ||||
| 	f.Room.BlueTeam.Guessers = utils.RemoveFromSlice(f.State.Username, f.Room.BlueTeam.Guessers) | ||||
| 	if f.Room.RedTeam.Mime == f.State.Username { | ||||
| 		f.Room.RedTeam.Mime = "" | ||||
| 	} | ||||
| 	if f.Room.BlueTeam.Mime == f.State.Username { | ||||
| 		f.Room.BlueTeam.Mime = "" | ||||
| 	} | ||||
| 	f.State.ExitRoom() | ||||
| 	resp := f.Room | ||||
| 	f.Room = nil | ||||
| 	return resp | ||||
| } | ||||
|   | ||||
| @@ -47,6 +47,12 @@ type UserState struct { | ||||
| 	Role     UserRole | ||||
| } | ||||
|  | ||||
| func (u *UserState) ExitRoom() { | ||||
| 	u.RoomID = "" | ||||
| 	u.Team = UserTeamNone | ||||
| 	u.Role = UserRoleNone | ||||
| } | ||||
|  | ||||
| func MakeTestState(creatorName string) *FullInfo { | ||||
| 	cards := []WordCard{ | ||||
| 		{Word: "hamster", Color: "blue"}, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Grail Finder
					Grail Finder