diff --git a/var/www.saladbook.xyz/database/database.json b/var/www.saladbook.xyz/database/database.json index f03f7e5c..911701eb 100644 --- a/var/www.saladbook.xyz/database/database.json +++ b/var/www.saladbook.xyz/database/database.json @@ -1,6 +1,5 @@ { "Stefano": "Carrot", "Leo": "nicoise", - "Daniil": "with_beets", - -} \ No newline at end of file + "Daniil": "with_beets" +} diff --git a/var/www.saladbook.xyz/database/salad_db.py b/var/www.saladbook.xyz/database/salad_db.py index 1836940a..1f04e9f3 100755 --- a/var/www.saladbook.xyz/database/salad_db.py +++ b/var/www.saladbook.xyz/database/salad_db.py @@ -12,17 +12,19 @@ def get_script_directory(): def load_database(filename): """Load the JSON database from a file.""" + print(f"DEBUG: Attempting to load database from {filename}
") if os.path.exists(filename): try: with open(filename, "r") as file: return json.load(file) except json.JSONDecodeError: - print("Error: Database file contains invalid JSON. Initializing an empty database.") - return {} + print("Error: Database file contains invalid JSON. Unable to load data.") + return None except Exception as e: print(f"Error: Failed to read the database file. {e}") - return {} + return None else: + print(f"DEBUG: Database file {filename} does not exist.
") return {} def save_database(data, filename): @@ -30,9 +32,19 @@ def save_database(data, filename): try: with open(filename, "w") as file: json.dump(data, file, indent=4) + print(f"DEBUG: Database saved to {filename}
") except Exception as e: print(f"Error: Failed to save the database file. {e}") +def initialize_database(filename): + """Initialize the database file if it does not exist.""" + if not os.path.exists(filename): + data = {} + save_database(data, filename) + return data + else: + return load_database(filename) + def main(): print("Content-type: text/html\n") print() @@ -45,9 +57,12 @@ def main(): # Get the directory where the script is located script_directory = get_script_directory() filename = os.path.join(script_directory, "database.json") + print(f"DEBUG: Database filename is {filename}
") - # Load existing data - data = load_database(filename) + # Initialize and load existing data + data = initialize_database(filename) + if data is None: + data = {} print(f"DEBUG: Loaded data: {data}
") # Determine the request method @@ -58,14 +73,17 @@ def main(): # Read the input data from stdin content_length = int(os.getenv('CONTENT_LENGTH', 0)) post_data = sys.stdin.read(content_length) + print(f"DEBUG: Received POST data: {post_data}
") form_data = parse_qs(post_data) else: # DELETE method - form_data = cgi.FieldStorage() + form_data = sys.stdin.read() # Debugging: Print the form keys and values for key in form_data.keys(): print(f"DEBUG: form[{key}]={form_data[key]}
") + print(f"DEBUG: form_data={form_data}
") + name = form_data.get('name', [None])[0] salad = form_data.get('salad', [None])[0] if method == 'POST' else None