43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
import traceback
|
|
|
|
from sanic import Sanic, response
|
|
from app.core.logger import make_log
|
|
|
|
app = Sanic(__name__)
|
|
|
|
from app.api.middleware import attach_user_to_request, close_db_session, close_request_handler
|
|
|
|
app.register_middleware(attach_user_to_request, "request")
|
|
app.register_middleware(close_db_session, "response")
|
|
|
|
from app.api.routes._index import s_index
|
|
from app.api.routes.auth import s_api_v1_auth_twa
|
|
from app.api.routes.tonconnect import s_api_tonconnect_manifest
|
|
from app.api.routes.node_storage import s_api_v1_storage_post, s_api_v1_storage_get
|
|
from app.api.routes.custodial import s_api_v1_custodial_upload_content
|
|
|
|
app.add_route(s_index, "/")
|
|
|
|
app.add_route(s_api_tonconnect_manifest, "/api/tonconnect-manifest.json")
|
|
|
|
app.add_route(s_api_v1_auth_twa, "/api/v1/auth.twa", methods=["POST", "OPTIONS"])
|
|
|
|
app.add_route(s_api_v1_storage_post, "/api/v1/storage", methods=["POST", "OPTIONS"])
|
|
app.add_route(s_api_v1_storage_get, "/api/v1/storage/<file_hash>", methods=["GET", "OPTIONS"])
|
|
|
|
app.add_route(s_api_v1_custodial_upload_content, "/api/v1/custodial.uploadContent", methods=["POST", "OPTIONS"])
|
|
|
|
|
|
@app.exception(BaseException)
|
|
async def s_handle_exception(request, exception):
|
|
response_buffer = response.json({"error": "An internal server error occurred"}, status=500)
|
|
request, response_buffer = await close_request_handler(request, response_buffer)
|
|
|
|
try:
|
|
raise exception
|
|
except BaseException as e:
|
|
make_log("sanic_exception", f"Exception: {e}" + '\n' + str(traceback.format_exc()), level='error')
|
|
|
|
return response_buffer
|
|
|