From 58bbbf3cbdc3b075389de3389a374a2acec2097b Mon Sep 17 00:00:00 2001 From: Daniel Dolezal Date: Thu, 15 May 2025 09:55:12 +0200 Subject: [PATCH] allow to return cleaned up values --- server/Server.py | 5 +++-- server/storage/EdgeDB.py | 15 ++++++++------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/server/Server.py b/server/Server.py index be9205a..ef53b6b 100644 --- a/server/Server.py +++ b/server/Server.py @@ -57,7 +57,8 @@ class Server: @self.app.get("/cleanup") def cleanup(): - self._cleanup_database() + results = self._cleanup_database() + return jsonify(data=json.loads(results), status=200) def run(self, host:str="0.0.0.0", port:str="8000", debug:bool=False): logging.getLogger("werkzeug").setLevel(logging.ERROR) @@ -159,4 +160,4 @@ class Server: def _cleanup_database(self): storage = StorageLoader.build(self.storage_type)() - return jsonify(storage.cleanup()) + return storage.cleanup() diff --git a/server/storage/EdgeDB.py b/server/storage/EdgeDB.py index 0de1310..6955a2c 100644 --- a/server/storage/EdgeDB.py +++ b/server/storage/EdgeDB.py @@ -1,7 +1,7 @@ from server.GameBoard import GameBoard from datetime import datetime -import edgedb, json, time +import gel, json, time class EdgeDB: def __init__(self, database:str=None, tls_security:str='insecure', **kwargs): @@ -10,7 +10,7 @@ class EdgeDB: self._connect() def _connect(self): - self.client = edgedb.create_client( + self.client = gel.create_client( tls_security=self.tls_security, database=self.database ) @@ -19,7 +19,7 @@ class EdgeDB: while True: try: return function(*args, **kwargs) - except edgedb.errors.ClientConnectionFailedError: + except gel.errors.ClientConnectionFailedError: self._connect() time.sleep(0.5) @@ -112,11 +112,12 @@ class EdgeDB: def cleanup(self): return self.run_query_with_reconnection( - self.client.query, + self.client.query_json, """ - delete default::GameBoard { } - filter .turns < "200" or .is_winner_me = "false"; + delete Moves { }; + + with gameboard := (delete GameBoard filter .turns < "200" or .is_winner_me = "false") + select gameboard {id, url, winner, turns, type: { is_ladder, name } }; - delete default::Moves { } """ )