Skip to content

Commit

Permalink
Core: Fixed API running out of connections from pool
Browse files Browse the repository at this point in the history
  • Loading branch information
AuxiliumCDNG committed Jan 17, 2022
1 parent 414a0e2 commit eca760c
Show file tree
Hide file tree
Showing 7 changed files with 19 additions and 11 deletions.
2 changes: 1 addition & 1 deletion helpers/db.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
uri = f"{config.DB.type}+{config.DB.driver}://{config.DB.user}:{config.DB.password}@" \
f"{config.DB.host}:{config.DB.port}/{config.DB.db}"

engine = sqlalchemy.create_engine(uri)
engine = sqlalchemy.create_engine(uri, pool_size=5, max_overflow=-1, pool_timeout=10)
factory = sessionmaker(bind=engine)

Base = sqlalchemy.ext.declarative.declarative_base()
Expand Down
2 changes: 2 additions & 0 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from globals import app
from helpers import init
from routes import user
from routes.api_comments import api_comment
from routes.api_create import api_create
from routes.api_get import api_get
from routes.api_moderate import api_moderate
Expand All @@ -18,6 +19,7 @@
app.register_blueprint(api_create)
app.register_blueprint(api_permissions)
app.register_blueprint(api_moderate)
app.register_blueprint(api_comment)

@app.after_request
def add_header(r):
Expand Down
6 changes: 4 additions & 2 deletions routes/api_comments.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
from globals import app
from helpers import db

api_moderate = Blueprint("api_comment", __name__)
api_comment = Blueprint("api_comment", __name__)

@crossdomain(origin="*", current_app=app)
@api_moderate.route("/api/content/comment/")
@api_comment.route("/api/content/comment/")
@login_required
def comment():
content_id = request.args["id"]
Expand All @@ -25,5 +25,7 @@ def comment():
session.add(db.Content(location=content_id, type="comment", permissions=permissions, content=content))
session.commit()
session.close()

return {"success": True, "message": "success"}
else:
return {"error": {"message": "missing permissions"}}, 403
2 changes: 1 addition & 1 deletion routes/api_create.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,6 @@ def create_content():
session.commit()
session.close()

return {"message": "success"}, 201
return {"success": True, "message": "success"}, 201
else:
return permission, 500
4 changes: 4 additions & 0 deletions routes/api_get.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,8 @@ def breadcrumb():

data.reverse()

session.close()

return jsonify(data)

@crossdomain(origin="*", current_app=app)
Expand All @@ -92,4 +94,6 @@ def versions():
res = session.query(db.Versions).filter_by(content_id=location).order_by(db.Versions.id)
res = reversed(res)

session.close()

return jsonify(res)
8 changes: 4 additions & 4 deletions routes/api_moderate.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ def delete_content():
session.commit()
session.close()

return {"message": "success", "redirect": parent_id}, 200
return {"success": True, "message": "success", "redirect": parent_id}, 200

else:
return {"error": {"message": "missing permissions"}}, 403
Expand All @@ -47,7 +47,7 @@ def cut_content():
if helpers.permissions.permission_check(current_user, content_id, "moderate", "move"):
cut_objects[current_user.email] = content_id

return {"message": "success", "redirect": content_id}, 200
return {"success": True, "message": "success", "redirect": content_id}, 200

else:
return {"error": {"message": "missing permissions"}}, 403
Expand Down Expand Up @@ -78,7 +78,7 @@ def paste_content():

del cut_objects[current_user.email]

return {"message": "success", "redirect": content_id}, 200
return {"success": True, "message": "success", "redirect": content_id}, 200
else:
return {"error": {"message": "missing permissions"}}, 403

Expand Down Expand Up @@ -118,4 +118,4 @@ def edit():
session.commit()
session.close()

return {"message": "success", "redirect": content_id}, 200
return {"success": True, "message": "success", "redirect": content_id}, 200
6 changes: 3 additions & 3 deletions routes/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ def login():
db.session.add(user)
db.session.commit()

return {"message": "success", "user": {"username": user.username}}, 200
return {"success": True, "message": "success", "user": {"username": user.username}}, 200
else:
return {"error": {"message": "wrong password", "frontend": "WRONG_PASSWORD"}}, 401

Expand All @@ -97,7 +97,7 @@ def logout():
db.session.add(user)
db.session.commit()
logout_user()
return {"message": "success"}, 200
return {"success": True, "message": "success"}, 200


@user_management.route("/register/", methods=["GET", "POST"])
Expand All @@ -121,6 +121,6 @@ def register():
db.session.add(user)
db.session.commit()

return {"message": "success", "user": {"username": user.username}}, 200
return {"success": True, "message": "success", "user": {"username": user.username}}, 200

return {"error": {"message": "no form recieved"}}, 400

0 comments on commit eca760c

Please sign in to comment.