45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
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()
|
|
except sqlalchemy.exc.OperationalError:
|
|
return jsonify({"error": "Database error"}), 500
|
|
return jsonify({"message": "Database reset"}), 200
|
|
|
|
if __name__ == "__main__":
|
|
app.run(debug=True) |