diff --git a/server/szurubooru/middleware/__init__.py b/server/szurubooru/middleware/__init__.py index 010af680..c5a90d8a 100644 --- a/server/szurubooru/middleware/__init__.py +++ b/server/szurubooru/middleware/__init__.py @@ -1,6 +1,5 @@ ''' Various hooks that get executed for each request. ''' -import szurubooru.middleware.db_session import szurubooru.middleware.authenticator import szurubooru.middleware.cache_purger import szurubooru.middleware.request_logger diff --git a/server/szurubooru/middleware/db_session.py b/server/szurubooru/middleware/db_session.py deleted file mode 100644 index 4a2fe960..00000000 --- a/server/szurubooru/middleware/db_session.py +++ /dev/null @@ -1,12 +0,0 @@ -from szurubooru import db -from szurubooru.rest import middleware - - -@middleware.pre_hook -def _process_request(ctx): - ctx.session = db.session() - - -@middleware.post_hook -def _process_response(_ctx): - db.session.remove() diff --git a/server/szurubooru/rest/app.py b/server/szurubooru/rest/app.py index eb163f09..0823e6e3 100644 --- a/server/szurubooru/rest/app.py +++ b/server/szurubooru/rest/app.py @@ -3,6 +3,7 @@ import cgi import json import re from datetime import datetime +from szurubooru import db from szurubooru.func import util from szurubooru.rest import errors, middleware, routes, context @@ -86,13 +87,18 @@ def application(env, start_response): 'Requested path ' + ctx.url + ' was not found.') try: - for hook in middleware.pre_hooks: - hook(ctx) + ctx.session = db.session() try: - response = handler(ctx, match.groupdict()) - finally: - for hook in middleware.post_hooks: + for hook in middleware.pre_hooks: hook(ctx) + try: + response = handler(ctx, match.groupdict()) + finally: + for hook in middleware.post_hooks: + hook(ctx) + finally: + db.session.remove() + start_response('200', [('content-type', 'application/json')]) return (_dump_json(response).encode('utf-8'),)