new table shizz
This commit is contained in:
@@ -2,6 +2,9 @@ from sqlite3 import Connection, Cursor
|
|||||||
from database import SmartCursor
|
from database import SmartCursor
|
||||||
import random
|
import random
|
||||||
|
|
||||||
|
class GameTableException(Exception):
|
||||||
|
def __init__(self, message):
|
||||||
|
super().__init__(self, message)
|
||||||
|
|
||||||
class GameTable:
|
class GameTable:
|
||||||
_game_table_id: int
|
_game_table_id: int
|
||||||
@@ -11,6 +14,7 @@ class GameTable:
|
|||||||
_docker_id: str
|
_docker_id: str
|
||||||
_created: bool
|
_created: bool
|
||||||
_updated: bool
|
_updated: bool
|
||||||
|
_delete: bool
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
@@ -21,6 +25,7 @@ class GameTable:
|
|||||||
docker_id: int,
|
docker_id: int,
|
||||||
created: bool = False,
|
created: bool = False,
|
||||||
updated: bool = False,
|
updated: bool = False,
|
||||||
|
delete: bool = False
|
||||||
):
|
):
|
||||||
self._game_table_id = game_table_id
|
self._game_table_id = game_table_id
|
||||||
self._game_table_name = game_table_name
|
self._game_table_name = game_table_name
|
||||||
@@ -29,6 +34,7 @@ class GameTable:
|
|||||||
self._docker_id = docker_id
|
self._docker_id = docker_id
|
||||||
self._created = created
|
self._created = created
|
||||||
self._updated = updated
|
self._updated = updated
|
||||||
|
self._delete = delete
|
||||||
|
|
||||||
def toJson(self):
|
def toJson(self):
|
||||||
return {
|
return {
|
||||||
@@ -72,6 +78,18 @@ class GameTable:
|
|||||||
)
|
)
|
||||||
self._updated = True
|
self._updated = True
|
||||||
return
|
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
|
@property
|
||||||
def game_table_id(self):
|
def game_table_id(self):
|
||||||
@@ -137,7 +155,7 @@ class GameService:
|
|||||||
if len(rows) == 0:
|
if len(rows) == 0:
|
||||||
return None
|
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):
|
def read_all(self, cursor=None):
|
||||||
with SmartCursor(cursor, self.connection) as smartCursor:
|
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"
|
"SELECT game_table_id, game_table_name, game_table_link, active, docker_id FROM game_tables"
|
||||||
).fetchall()
|
).fetchall()
|
||||||
return [
|
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
|
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"
|
"SELECT game_table_id, game_table_name, game_table_link, active, docker_id FROM game_tables WHERE active != 0"
|
||||||
).fetchall()
|
).fetchall()
|
||||||
return [
|
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
|
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 game_tables import GameService, GameTable
|
||||||
from key_tables import KeyService, KeyTable
|
from key_tables import KeyService, KeyTable
|
||||||
import container_managment
|
import container_managment
|
||||||
@@ -10,6 +10,7 @@ tables = Blueprint("tables_api", __name__)
|
|||||||
|
|
||||||
@tables.route("/tables", methods=["POST"])
|
@tables.route("/tables", methods=["POST"])
|
||||||
def create_table():
|
def create_table():
|
||||||
|
current_app.logger.info(request.get_json())
|
||||||
db = get_db()
|
db = get_db()
|
||||||
with SmartCursor(connection=db) as smartCursor:
|
with SmartCursor(connection=db) as smartCursor:
|
||||||
table = GameTable(
|
table = GameTable(
|
||||||
@@ -38,7 +39,17 @@ def update_table(table_id):
|
|||||||
|
|
||||||
@tables.route("tables/<table_id>", methods=["DELETE"])
|
@tables.route("tables/<table_id>", methods=["DELETE"])
|
||||||
def delete_table(table_id):
|
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")
|
@tables.route("/tables/active")
|
||||||
|
|||||||
Reference in New Issue
Block a user