new table shizz

This commit is contained in:
iamBadgers
2026-04-11 20:19:34 -07:00
parent 20e5f49274
commit ea9c457dbe
2 changed files with 34 additions and 5 deletions

View File

@@ -2,6 +2,9 @@ from sqlite3 import Connection, Cursor
from database import SmartCursor
import random
class GameTableException(Exception):
def __init__(self, message):
super().__init__(self, message)
class GameTable:
_game_table_id: int
@@ -11,6 +14,7 @@ class GameTable:
_docker_id: str
_created: bool
_updated: bool
_delete: bool
def __init__(
self,
@@ -21,6 +25,7 @@ class GameTable:
docker_id: int,
created: bool = False,
updated: bool = False,
delete: bool = False
):
self._game_table_id = game_table_id
self._game_table_name = game_table_name
@@ -29,6 +34,7 @@ class GameTable:
self._docker_id = docker_id
self._created = created
self._updated = updated
self._delete = delete
def toJson(self):
return {
@@ -72,6 +78,18 @@ class GameTable:
)
self._updated = True
return
if self._delete:
cursor.execute("DELETE FROM game_tables WHERE game_table_id = ?", (self._game_table_id,))
self._created = False
self._updated = True
self._delete = False
def delete(self):
if not self._created:
raise GameTableException("Cannot delete a table if it is not created.")
if not self._updated:
raise GameTableException("Cannot delete a table if it is dirty.")
self._delete = True
@property
def game_table_id(self):
@@ -137,7 +155,7 @@ class GameService:
if len(rows) == 0:
return None
return GameTable(rows[0], rows[1], rows[2], rows[3], rows[4], True, True)
return GameTable(rows[0], rows[1], rows[2], rows[3], rows[4], True, True, False)
def read_all(self, cursor=None):
with SmartCursor(cursor, self.connection) as smartCursor:
@@ -145,7 +163,7 @@ class GameService:
"SELECT game_table_id, game_table_name, game_table_link, active, docker_id FROM game_tables"
).fetchall()
return [
GameTable(row[0], row[1], row[2], row[3], row[4], True, True)
GameTable(row[0], row[1], row[2], row[3], row[4], True, True, False)
for row in rows
]
@@ -155,6 +173,6 @@ class GameService:
"SELECT game_table_id, game_table_name, game_table_link, active, docker_id FROM game_tables WHERE active != 0"
).fetchall()
return [
GameTable(row[0], row[1], row[2], row[3], row[4], True, True)
GameTable(row[0], row[1], row[2], row[3], row[4], True, True, False)
for row in rows
]

View File

@@ -1,4 +1,4 @@
from flask import Blueprint, Flask, g, jsonify, request
from flask import Blueprint, Flask, g, jsonify, request, current_app
from game_tables import GameService, GameTable
from key_tables import KeyService, KeyTable
import container_managment
@@ -10,6 +10,7 @@ tables = Blueprint("tables_api", __name__)
@tables.route("/tables", methods=["POST"])
def create_table():
current_app.logger.info(request.get_json())
db = get_db()
with SmartCursor(connection=db) as smartCursor:
table = GameTable(
@@ -38,7 +39,17 @@ def update_table(table_id):
@tables.route("tables/<table_id>", methods=["DELETE"])
def delete_table(table_id):
return
db = get_db()
gameService = GameService(db)
table = gameService.read_by_id(table_id)
if table == None:
return jsonify({}), 404
table.delete()
with SmartCursor(connection=db) as smartCursor:
table.commit(smartCursor)
db.commit()
return jsonify({}), 200
@tables.route("/tables/active")