This commit is contained in:
31
storage_service/app.py
Normal file
31
storage_service/app.py
Normal file
@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
from flask import Flask
|
||||
from werkzeug.middleware.proxy_fix import ProxyFix
|
||||
|
||||
# import stuff
|
||||
from utils import register_all_error_handlers
|
||||
|
||||
# import views
|
||||
from views import ObjectView
|
||||
|
||||
# create flask app
|
||||
app = Flask(__name__)
|
||||
app.wsgi_app = ProxyFix(app.wsgi_app, x_proto=1)
|
||||
|
||||
# important stuff
|
||||
app.secret_key = os.environ.get('SECRET_KEY', os.urandom(12))
|
||||
|
||||
# register error handlers
|
||||
register_all_error_handlers(app)
|
||||
|
||||
# register views
|
||||
for view in [ObjectView]:
|
||||
view.register(app, trailing_slash=False)
|
||||
|
||||
|
||||
|
||||
|
||||
# start debuggig if needed
|
||||
if __name__ == "__main__":
|
||||
app.run(debug=True)
|
1
storage_service/schemas/__init__.py
Normal file
1
storage_service/schemas/__init__.py
Normal file
@ -0,0 +1 @@
|
||||
#!/usr/bin/env python3
|
1
storage_service/tests/__init__.py
Normal file
1
storage_service/tests/__init__.py
Normal file
@ -0,0 +1 @@
|
||||
import os
|
3
storage_service/utils/__init__.py
Normal file
3
storage_service/utils/__init__.py
Normal file
@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env python3
|
||||
from .require_decorators import json_required
|
||||
from .error_handlers import register_all_error_handlers
|
21
storage_service/utils/error_handlers.py
Normal file
21
storage_service/utils/error_handlers.py
Normal file
@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
|
||||
def get_standard_error_handler(code: int):
|
||||
|
||||
def error_handler(err):
|
||||
return {"msg": str(err)}, code
|
||||
|
||||
return error_handler
|
||||
|
||||
|
||||
def register_all_error_handlers(app):
|
||||
"""
|
||||
function to register all handlers
|
||||
"""
|
||||
|
||||
error_codes_to_override = [404, 403, 401, 405, 400, 409, 422]
|
||||
|
||||
for code in error_codes_to_override:
|
||||
app.register_error_handler(code, get_standard_error_handler(code))
|
||||
|
19
storage_service/utils/require_decorators.py
Normal file
19
storage_service/utils/require_decorators.py
Normal file
@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env python3
|
||||
from flask import request, current_app, abort
|
||||
|
||||
from functools import wraps
|
||||
|
||||
|
||||
|
||||
def json_required(f):
|
||||
|
||||
@wraps(f)
|
||||
def call(*args, **kwargs):
|
||||
|
||||
if request.is_json:
|
||||
return f(*args, **kwargs)
|
||||
else:
|
||||
abort(400, "JSON required")
|
||||
|
||||
return call
|
||||
|
2
storage_service/views/__init__.py
Normal file
2
storage_service/views/__init__.py
Normal file
@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env python3
|
||||
from .object_view import ObjectView
|
9
storage_service/views/object_view.py
Normal file
9
storage_service/views/object_view.py
Normal file
@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env python3
|
||||
from flask import jsonify
|
||||
from flask_classful import FlaskView
|
||||
|
||||
|
||||
class ObjectView(FlaskView):
|
||||
|
||||
def post(self):
|
||||
return jsonify({}), 200
|
Reference in New Issue
Block a user