db interface: expand for new cert game tables
This commit is contained in:
parent
397dd9d641
commit
c04940fb9b
1 changed files with 9 additions and 6 deletions
|
@ -8,18 +8,21 @@ from hanabi import logger
|
||||||
|
|
||||||
from hanabi.database import conn, cur
|
from hanabi.database import conn, cur
|
||||||
|
|
||||||
|
def get_actions_table_name(cert_game: bool):
|
||||||
|
return "certificate_game_actions" if cert_game else "game_actions"
|
||||||
|
|
||||||
def store_actions(game_id: int, actions: List[hanabi.hanab_game.Action]):
|
|
||||||
|
def store_actions(game_id: int, actions: List[hanabi.hanab_game.Action], cert_game: bool = False):
|
||||||
vals = []
|
vals = []
|
||||||
for turn, action in enumerate(actions):
|
for turn, action in enumerate(actions):
|
||||||
vals.append((game_id, turn, action.type.value, action.target, action.value or 0))
|
vals.append((game_id, turn, action.type.value, action.target, action.value or 0))
|
||||||
|
|
||||||
psycopg2.extras.execute_values(
|
psycopg2.extras.execute_values(
|
||||||
cur,
|
cur,
|
||||||
"INSERT INTO game_actions (game_id, turn, type, target, value) "
|
"INSERT INTO {} (game_id, turn, type, target, value) "
|
||||||
"VALUES %s "
|
"VALUES %s "
|
||||||
"ON CONFLICT (game_id, turn) "
|
"ON CONFLICT (game_id, turn) "
|
||||||
"DO NOTHING",
|
"DO NOTHING".format(get_actions_table_name(cert_game)),
|
||||||
vals
|
vals
|
||||||
)
|
)
|
||||||
conn.commit()
|
conn.commit()
|
||||||
|
@ -41,10 +44,10 @@ def store_deck_for_seed(seed: str, deck: List[hanabi.hanab_game.DeckCard]):
|
||||||
conn.commit()
|
conn.commit()
|
||||||
|
|
||||||
|
|
||||||
def load_actions(game_id: int) -> List[hanabi.hanab_game.Action]:
|
def load_actions(game_id: int, cert_game: bool = False) -> List[hanabi.hanab_game.Action]:
|
||||||
cur.execute("SELECT type, target, value FROM game_actions "
|
cur.execute("SELECT type, target, value FROM {} "
|
||||||
"WHERE game_id = %s "
|
"WHERE game_id = %s "
|
||||||
"ORDER BY turn ASC",
|
"ORDER BY turn ASC".format(get_actions_table_name(cert_game)),
|
||||||
(game_id,))
|
(game_id,))
|
||||||
actions = []
|
actions = []
|
||||||
for action_type, target, value in cur.fetchall():
|
for action_type, target, value in cur.fetchall():
|
||||||
|
|
Loading…
Reference in a new issue