feat(api): add /delete-acc-data and /delete-user-data routes

This commit is contained in:
yiekheng 2026-05-02 21:15:21 +08:00
parent f13e3993e9
commit dac1e10b5d

View File

@ -55,6 +55,10 @@ class CM_API:
# Update routes # Update routes
self.app.route('/update-acc-data', methods=['POST'])(self.update_acc_data) self.app.route('/update-acc-data', methods=['POST'])(self.update_acc_data)
self.app.route('/update-user-data', methods=['POST'])(self.update_user_data) self.app.route('/update-user-data', methods=['POST'])(self.update_user_data)
# Delete routes
self.app.route('/delete-acc-data', methods=['POST'])(self.delete_acc_data)
self.app.route('/delete-user-data', methods=['POST'])(self.delete_user_data)
def _check_database_available(self): def _check_database_available(self):
db = self._get_database_connection() db = self._get_database_connection()
@ -168,6 +172,58 @@ class CM_API:
finally: finally:
self._close_database_connection(db) self._close_database_connection(db)
def delete_acc_data(self):
is_available, db, error_response = self._check_database_available()
if not is_available:
return error_response
try:
data = request.get_json() or {}
username = data.get('username')
if not username:
return jsonify({"error": "Username is required"}), 400
result = db.execute(
"DELETE FROM acc WHERE username = %s",
[username]
)
if result:
return jsonify({"deleted": username})
return jsonify({"error": "Failed to delete account"}), 500
except Exception as error:
return self._handle_error(error, "Error deleting account"), 500
finally:
self._close_database_connection(db)
def delete_user_data(self):
is_available, db, error_response = self._check_database_available()
if not is_available:
return error_response
try:
data = request.get_json() or {}
f_username = data.get('f_username')
if not f_username:
return jsonify({"error": "f_username is required"}), 400
result = db.execute(
"DELETE FROM user WHERE f_username = %s",
[f_username]
)
if result:
return jsonify({"deleted": f_username})
return jsonify({"error": "Failed to delete user"}), 500
except Exception as error:
return self._handle_error(error, "Error deleting user"), 500
finally:
self._close_database_connection(db)
def run(self, port=3000, debug=None): def run(self, port=3000, debug=None):
if debug is None: if debug is None:
debug = _debug_enabled() debug = _debug_enabled()