add cleanup code for storage classes

This commit is contained in:
2025-04-28 13:36:34 +02:00
parent 0768e7f254
commit c5c2652f3a
3 changed files with 23 additions and 1 deletions
+9 -1
View File
@@ -4,7 +4,7 @@ from server.SnakeBuilder import SnakeBuilder
from server.storage.StorageLoader import StorageLoader
from flask import Flask
from flask import Flask, jsonify
from flask import request
import logging, json, os, re
@@ -55,6 +55,10 @@ class Server:
)
return response
@self.app.post("/cleanup")
def cleanup():
self._cleanup()
def run(self, host:str="0.0.0.0", port:str="8000", debug:bool=False):
logging.getLogger("werkzeug").setLevel(logging.ERROR)
@@ -152,3 +156,7 @@ class Server:
print("GAME ENDED: Winner is", [ x["name"] for x in game_state["board"]['snakes']])
self._delete_game_board(game_state)
def _cleanup(self):
storage = StorageLoader.build(self.storage_type)
return jsonify(storage.cleanup())
+11
View File
@@ -109,3 +109,14 @@ class EdgeDB:
def __del__(self):
self.client.close()
def cleanup(self):
return self.run_query_with_reconnection(
self.client.query,
"""
delete default::GameBoard { }
filter .turns < <std::int32>"200" or .is_winner_me = <std::bool>"false";
delete default::Moves { }
"""
)
+3
View File
@@ -54,3 +54,6 @@ class LocalStorage:
"calculations": game_board.snake_class.get_history(),
},
}, callback=json.dump, indent=2, ensure_ascii=False)
def cleanup(self):
pass