Implement MongoDB database adapter (#29)

* Implement MongoDB adapter using motor

* Add mongo container to build pipeline

* Tidy up dependencies

* Update documentation for MongoDB

* Export MongoDB adapter from db package

* Pass black format

* Update README
This commit is contained in:
François Voron
2019-10-27 16:34:30 +01:00
committed by GitHub
parent 3875632c80
commit ab0b187f20
15 changed files with 255 additions and 14 deletions

View File

@@ -1,4 +1,4 @@
from typing import List, cast
from typing import List, Optional, cast
from databases import Database
from sqlalchemy import Boolean, Column, String, Table
@@ -38,11 +38,11 @@ class SQLAlchemyUserDatabase(BaseUserDatabase):
query = self.users.select()
return cast(List[BaseUserDB], await self.database.fetch_all(query))
async def get(self, id: str) -> BaseUserDB:
async def get(self, id: str) -> Optional[BaseUserDB]:
query = self.users.select().where(self.users.c.id == id)
return cast(BaseUserDB, await self.database.fetch_one(query))
async def get_by_email(self, email: str) -> BaseUserDB:
async def get_by_email(self, email: str) -> Optional[BaseUserDB]:
query = self.users.select().where(self.users.c.email == email)
return cast(BaseUserDB, await self.database.fetch_one(query))