Add leave table server API
This commit is contained in:
@ -90,7 +90,18 @@ final class Database {
|
||||
tables.getPublicTableInfos()
|
||||
}
|
||||
|
||||
func join(tableId: TableId, player: PlayerName) -> TableManagement.JoinTableResult {
|
||||
tables.join(tableId: tableId, player: player)
|
||||
func join(tableId: TableId, playerToken: SessionToken) -> JoinTableResult {
|
||||
guard let player = players.registeredPlayerExists(withSessionToken: playerToken) else {
|
||||
return .invalidToken
|
||||
}
|
||||
return tables.join(tableId: tableId, player: player)
|
||||
}
|
||||
|
||||
func leaveTable(playerToken: SessionToken) -> Bool {
|
||||
guard let player = players.registeredPlayerExists(withSessionToken: playerToken) else {
|
||||
return false
|
||||
}
|
||||
tables.remove(player: player)
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
@ -79,8 +79,6 @@ final class TableManagement {
|
||||
players.append(player)
|
||||
if let oldTable = playerTables[tableId] {
|
||||
remove(player: player, fromTable: oldTable)
|
||||
// TODO: End game if needed
|
||||
//
|
||||
}
|
||||
tablePlayers[tableId] = players
|
||||
playerTables[tableId] = tableId
|
||||
@ -89,10 +87,15 @@ final class TableManagement {
|
||||
|
||||
func remove(player: PlayerName, fromTable tableId: TableId) {
|
||||
tablePlayers[tableId] = tablePlayers[tableId]?.filter { $0 != player }
|
||||
// TODO: End connection for removed user
|
||||
// TODO: End game if needed, send info to remaining players
|
||||
}
|
||||
|
||||
func remove(player: PlayerName) {
|
||||
fatalError()
|
||||
guard let tableId = playerTables[player] else {
|
||||
return
|
||||
}
|
||||
remove(player: player, fromTable: tableId)
|
||||
}
|
||||
|
||||
func connect(player: PlayerName, using socket: WebSocket) -> Bool {
|
||||
|
Reference in New Issue
Block a user