new table shizz
This commit is contained in:
@@ -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
|
||||
]
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user