[app] clean code
This commit is contained in:
parent
b6e511a96d
commit
333aca9e2c
|
@ -1,50 +1,56 @@
|
|||
#!/usr/bin/env python3
|
||||
"""
|
||||
app.py is the file that is read when launching the application using an asgi
|
||||
runner.
|
||||
|
||||
It defines the following globals :
|
||||
|
||||
- routes (contains the Route objects for the application)
|
||||
- d_acl (a dictionnary of the active acls for the current project)
|
||||
- d_api (a dictionnary of the routes depending on the routers definition in
|
||||
the project)
|
||||
- application (the asgi application itself - a starlette object)
|
||||
|
||||
"""
|
||||
# asgi framework
|
||||
from starlette.applications import Starlette
|
||||
from starlette.authentication import UnauthenticatedUser
|
||||
from starlette.middleware import Middleware
|
||||
from starlette.responses import Response, JSONResponse
|
||||
from starlette.routing import Route
|
||||
from starlette.middleware.authentication import AuthenticationMiddleware
|
||||
|
||||
# typing
|
||||
from typing import Any, Awaitable, Callable, MutableMapping
|
||||
|
||||
# module libraries
|
||||
from halfapi.conf import HOST, PORT, DB_NAME, SECRET, PRODUCTION, DOMAINS, DOMAINSDICT
|
||||
from halfapi.conf import SECRET, PRODUCTION, DOMAINSDICT
|
||||
|
||||
from halfapi.lib.jwt_middleware import JWTAuthenticationBackend
|
||||
|
||||
from halfapi.lib.responses import *
|
||||
from halfapi.lib.responses import (ORJSONResponse, UnauthorizedResponse,
|
||||
NotFoundResponse, InternalServerErrorResponse, NotImplementedResponse)
|
||||
|
||||
from halfapi.lib.routes import gen_starlette_routes, api_routes
|
||||
from halfapi.lib.schemas import get_api_routes, schema_json, get_acls
|
||||
|
||||
|
||||
"""
|
||||
Base routes definition
|
||||
|
||||
Only debug or doc routes, that should not be available in production
|
||||
"""
|
||||
routes = [ Route('/', get_api_routes) ]
|
||||
|
||||
|
||||
routes += [
|
||||
Route('/halfapi/current_user', lambda request, *args, **kwargs:
|
||||
ORJSONResponse({'user':request.user.json})
|
||||
if type(request.user) != UnauthenticatedUser
|
||||
if not isinstance(request.user, UnauthenticatedUser)
|
||||
else ORJSONResponse({'user': None})),
|
||||
Route('/halfapi/schema', schema_json),
|
||||
Route('/halfapi/acls', get_acls)
|
||||
]
|
||||
|
||||
d_api = {}
|
||||
d_acl = {}
|
||||
|
||||
for domain, m_domain in DOMAINSDICT.items():
|
||||
for route in gen_starlette_routes(m_domain):
|
||||
routes.append(route)
|
||||
|
||||
|
||||
d_api = {}
|
||||
d_acl = {}
|
||||
for domain, m_domain in DOMAINSDICT.items():
|
||||
d_api[domain], d_acl[domain] = api_routes(m_domain)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue