diff options
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/__init__.py | 4 | ||||
| -rw-r--r-- | backend/middleware.py | 8 | ||||
| -rw-r--r-- | backend/route.py | 2 | ||||
| -rw-r--r-- | backend/route_manager.py | 4 | ||||
| -rw-r--r-- | backend/routes/auth/authorize.py | 3 | ||||
| -rw-r--r-- | backend/routes/forms/discover.py | 4 | ||||
| -rw-r--r-- | backend/routes/forms/index.py | 4 | ||||
| -rw-r--r-- | backend/routes/forms/submit.py | 3 | ||||
| -rw-r--r-- | backend/routes/index.py | 4 | 
9 files changed, 22 insertions, 14 deletions
| diff --git a/backend/__init__.py b/backend/__init__.py index c3e59c8..6215961 100644 --- a/backend/__init__.py +++ b/backend/__init__.py @@ -1,3 +1,5 @@ +import os +  from starlette.applications import Starlette  from starlette.middleware import Middleware  from starlette.middleware.cors import CORSMiddleware @@ -9,7 +11,7 @@ middleware = [      Middleware(          CORSMiddleware,          allow_origins=[ -            "https://forms.pythondiscord.com" +            os.getenv("ALLOWED_URL", "https://forms.pythondiscord.com"),          ],          allow_headers=[              "Authorization", diff --git a/backend/middleware.py b/backend/middleware.py index c1aa731..cf46dc6 100644 --- a/backend/middleware.py +++ b/backend/middleware.py @@ -1,12 +1,16 @@ -from starlette.middleware.base import BaseHTTPMiddleware +import typing as t +  import pymongo  import ssl +from starlette.middleware.base import BaseHTTPMiddleware +from starlette.requests import Request +from starlette.responses import Response  from backend.constants import DATABASE_URL, MONGO_DATABASE  class DatabaseMiddleware(BaseHTTPMiddleware): -    async def dispatch(self, request, call_next): +    async def dispatch(self, request: Request, call_next: t.Callable) -> Response:          client = pymongo.MongoClient(              DATABASE_URL,              ssl_cert_reqs=ssl.CERT_NONE diff --git a/backend/route.py b/backend/route.py index af68b93..eb69ebc 100644 --- a/backend/route.py +++ b/backend/route.py @@ -9,7 +9,7 @@ class Route(HTTPEndpoint):      path: str = None      @classmethod -    def check_parameters(cls): +    def check_parameters(cls) -> "Route":          if cls.name is None:              raise ValueError(f"Route {cls.__name__} has not defined a name") diff --git a/backend/route_manager.py b/backend/route_manager.py index ef5d835..3d83ee7 100644 --- a/backend/route_manager.py +++ b/backend/route_manager.py @@ -12,7 +12,7 @@ from nested_dict import nested_dict  from backend.route import Route -def construct_route_map_from_dict(route_dict: dict): +def construct_route_map_from_dict(route_dict: dict) -> list:      route_map = []      for mount, item in route_dict.items():          if inspect.isclass(item): @@ -23,7 +23,7 @@ def construct_route_map_from_dict(route_dict: dict):      return route_map -def create_route_map(): +def create_route_map() -> list:      routes_directory = Path("backend") / "routes"      route_dict = nested_dict() diff --git a/backend/routes/auth/authorize.py b/backend/routes/auth/authorize.py index 768b9af..5de49f5 100644 --- a/backend/routes/auth/authorize.py +++ b/backend/routes/auth/authorize.py @@ -3,6 +3,7 @@ Use a token received from the Discord OAuth2 system to fetch user information.  """  import jwt +from starlette.requests import Request  from starlette.responses import JSONResponse  from backend.constants import SECRET_KEY @@ -18,7 +19,7 @@ class AuthorizeRoute(Route):      name = "authorize"      path = "/authorize" -    async def post(self, request): +    async def post(self, request: Request) -> JSONResponse:          data = await request.json()          bearer_token = await fetch_bearer_token(data["token"]) diff --git a/backend/routes/forms/discover.py b/backend/routes/forms/discover.py index 2752e64..ca36e93 100644 --- a/backend/routes/forms/discover.py +++ b/backend/routes/forms/discover.py @@ -1,7 +1,7 @@  """  Return a list of all publicly discoverable forms to unauthenticated users.  """ - +from starlette.requests import Request  from starlette.responses import JSONResponse  from backend.route import Route @@ -15,7 +15,7 @@ class DiscoverableFormsList(Route):      name = "discoverable_forms_list"      path = "/discoverable" -    async def get(self, request): +    async def get(self, request: Request) -> JSONResponse:          forms = []          for form in request.state.db.forms.find({ diff --git a/backend/routes/forms/index.py b/backend/routes/forms/index.py index 2f27b52..183d5cc 100644 --- a/backend/routes/forms/index.py +++ b/backend/routes/forms/index.py @@ -1,7 +1,7 @@  """  Return a list of all forms to authenticated users.  """ - +from starlette.requests import Request  from starlette.responses import JSONResponse  from backend.route import Route @@ -15,7 +15,7 @@ class FormsList(Route):      name = "forms_list"      path = "/" -    async def get(self, request): +    async def get(self, request: Request) -> JSONResponse:          forms = []          for form in request.state.db.forms.find(): diff --git a/backend/routes/forms/submit.py b/backend/routes/forms/submit.py index 599900f..f933367 100644 --- a/backend/routes/forms/submit.py +++ b/backend/routes/forms/submit.py @@ -6,6 +6,7 @@ import binascii  import hashlib  import jwt +from starlette.requests import Request  from starlette.responses import JSONResponse @@ -21,7 +22,7 @@ class SubmitForm(Route):      name = "submit_form"      path = "/submit/{form_id:str}" -    async def post(self, request): +    async def post(self, request: Request) -> JSONResponse:          data = await request.json()          if form := request.state.db.forms.find_one( diff --git a/backend/routes/index.py b/backend/routes/index.py index 1b5b404..8144723 100644 --- a/backend/routes/index.py +++ b/backend/routes/index.py @@ -1,7 +1,7 @@  """  Index route for the forms API.  """ - +from starlette.requests import Request  from starlette.responses import JSONResponse  from backend.route import Route @@ -17,7 +17,7 @@ class IndexRoute(Route):      name = "index"      path = "/" -    def get(self, request): +    def get(self, request: Request) -> JSONResponse:          return JSONResponse({              "message": "Hello, world!",              "client": request.client.host | 
