Feat: add player interface
This commit is contained in:
		
							
								
								
									
										31
									
								
								repos/players.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								repos/players.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | ||||
| package repos | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"gralias/models" | ||||
| ) | ||||
|  | ||||
| type PlayersRepo interface { | ||||
| 	GetPlayer(roomID, username string) (*models.Player, error) | ||||
| 	AddPlayer(player *models.Player) error | ||||
| 	DeletePlayer(roomID, username string) error | ||||
| } | ||||
|  | ||||
| func (p *RepoProvider) GetPlayer(roomID, username string) (*models.Player, error) { | ||||
| 	var player models.Player | ||||
| 	err := p.DB.QueryRow(context.Background(), "SELECT id, room_id, username, team, role, is_bot FROM players WHERE room_id = $1 AND username = $2", roomID, username).Scan(&player.ID, &player.RoomID, &player.Username, &player.Team, &player.Role, &player.IsBot) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return &player, nil | ||||
| } | ||||
|  | ||||
| func (p *RepoProvider) AddPlayer(player *models.Player) error { | ||||
| 	_, err := p.DB.Exec(context.Background(), "INSERT INTO players (room_id, username, team, role, is_bot) VALUES ($1, $2, $3, $4, $5)", player.RoomID, player.Username, player.Team, player.Role, player.IsBot) | ||||
| 	return err | ||||
| } | ||||
|  | ||||
| func (p *RepoProvider) DeletePlayer(roomID, username string) error { | ||||
| 	_, err := p.DB.Exec(context.Background(), "DELETE FROM players WHERE room_id = $1 AND username = $2", roomID, username) | ||||
| 	return err | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Grail Finder
					Grail Finder