aboutsummaryrefslogtreecommitdiffstats
path: root/backend
diff options
context:
space:
mode:
authorGravatar ks129 <[email protected]>2020-12-02 12:09:12 +0200
committerGravatar ks129 <[email protected]>2020-12-02 12:09:12 +0200
commit5ddbcaa41a4952720feb22733d57a2c7507aa95a (patch)
treea15e23ba0f7d17e8a00f81ca5a43b18b28cba295 /backend
parentMerge pull request #11 from python-discord/ks123/models (diff)
Move from PyMongo to Motor driver for asynchronous support
Diffstat (limited to 'backend')
-rw-r--r--backend/middleware.py4
-rw-r--r--backend/routes/auth/authorize.py2
-rw-r--r--backend/routes/forms/discover.py5
-rw-r--r--backend/routes/forms/index.py3
-rw-r--r--backend/routes/forms/submit.py2
5 files changed, 8 insertions, 8 deletions
diff --git a/backend/middleware.py b/backend/middleware.py
index cf46dc6..2267a9a 100644
--- a/backend/middleware.py
+++ b/backend/middleware.py
@@ -1,7 +1,7 @@
import typing as t
-import pymongo
import ssl
+from motor.motor_asyncio import AsyncIOMotorClient
from starlette.middleware.base import BaseHTTPMiddleware
from starlette.requests import Request
from starlette.responses import Response
@@ -11,7 +11,7 @@ from backend.constants import DATABASE_URL, MONGO_DATABASE
class DatabaseMiddleware(BaseHTTPMiddleware):
async def dispatch(self, request: Request, call_next: t.Callable) -> Response:
- client = pymongo.MongoClient(
+ client: AsyncIOMotorClient = AsyncIOMotorClient(
DATABASE_URL,
ssl_cert_reqs=ssl.CERT_NONE
)
diff --git a/backend/routes/auth/authorize.py b/backend/routes/auth/authorize.py
index 5de49f5..41c0a0b 100644
--- a/backend/routes/auth/authorize.py
+++ b/backend/routes/auth/authorize.py
@@ -25,7 +25,7 @@ class AuthorizeRoute(Route):
bearer_token = await fetch_bearer_token(data["token"])
user_details = await fetch_user_details(bearer_token["access_token"])
- user_details["admin"] = request.state.db.admins.find_one(
+ user_details["admin"] = await request.state.db.admins.find_one(
{"_id": user_details["id"]}
) is not None
diff --git a/backend/routes/forms/discover.py b/backend/routes/forms/discover.py
index ca36e93..f16faa4 100644
--- a/backend/routes/forms/discover.py
+++ b/backend/routes/forms/discover.py
@@ -17,10 +17,9 @@ class DiscoverableFormsList(Route):
async def get(self, request: Request) -> JSONResponse:
forms = []
+ cursor = request.state.db.forms.find({"features": "DISCOVERABLE"})
- for form in request.state.db.forms.find({
- "features": "DISCOVERABLE"
- }):
+ for form in await cursor.to_list(None):
forms.append(form)
return JSONResponse(
diff --git a/backend/routes/forms/index.py b/backend/routes/forms/index.py
index 183d5cc..41a3ccd 100644
--- a/backend/routes/forms/index.py
+++ b/backend/routes/forms/index.py
@@ -17,8 +17,9 @@ class FormsList(Route):
async def get(self, request: Request) -> JSONResponse:
forms = []
+ cursor = request.state.db.forms.find()
- for form in request.state.db.forms.find():
+ for form in await cursor.to_list(None):
forms.append(form)
return JSONResponse(
diff --git a/backend/routes/forms/submit.py b/backend/routes/forms/submit.py
index f933367..a94a1c9 100644
--- a/backend/routes/forms/submit.py
+++ b/backend/routes/forms/submit.py
@@ -25,7 +25,7 @@ class SubmitForm(Route):
async def post(self, request: Request) -> JSONResponse:
data = await request.json()
- if form := request.state.db.forms.find_one(
+ if form := await request.state.db.forms.find_one(
{"_id": request.path_params["form_id"], "features": "OPEN"}
):
response_obj = {}