import os import sqlalchemy.exc from flask import Flask, request, jsonify from routes import org_bp, user_bp, file_bp from database import db_connection, db from models import Organization, User, File, Session app = Flask(__name__) app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///database.db" app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = True app.config["SQLALCHEMY_AUTOCOMMIT"] = False app.config["SQLALCHEMY_AUTOFLUSH"] = False db_connection.init_app(app) with app.app_context(): try: db_connection.session.query(Session).delete() db_connection.session.commit() except sqlalchemy.exc.OperationalError: pass db_connection.create_all() app.register_blueprint(org_bp, url_prefix="/org") app.register_blueprint(user_bp, url_prefix="/user") app.register_blueprint(file_bp, url_prefix="/file") @app.route("/", methods=["GET"]) def index(): return jsonify({"message": "Welcome to the API"}), 200 @app.route("/reset", methods=["POST"]) def reset(): password = request.json["password"] if password != "123": return jsonify({"error": "Invalid password"}), 403 try: with app.app_context(): db_connection.drop_all() db_connection.create_all() repos = os.path.join(os.path.dirname(os.path.abspath(__file__)), "repository") for repo in os.listdir(repos): if os.path.isdir(os.path.join(repos, repo)): for file in os.listdir(os.path.join(repos, repo)): os.remove(os.path.join(repos, repo, file)) os.rmdir(os.path.join(repos, repo)) except sqlalchemy.exc.OperationalError: return jsonify({"error": "Database error"}), 500 return jsonify({"message": "Database reset"}), 200 if __name__ == "__main__": app.run(debug=True)