mirror of
https://github.com/fastapi-users/fastapi-users.git
synced 2025-11-07 08:25:42 +08:00
Add get by id method on DB adapter
This commit is contained in:
@ -15,6 +15,9 @@ class UserDBInterface:
|
|||||||
async def list(self) -> List[UserDB]:
|
async def list(self) -> List[UserDB]:
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
|
async def get(self, id: str) -> UserDB:
|
||||||
|
raise NotImplementedError()
|
||||||
|
|
||||||
async def get_by_email(self, email: str) -> UserDB:
|
async def get_by_email(self, email: str) -> UserDB:
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
|
|||||||
@ -34,6 +34,10 @@ class SQLAlchemyUserDB(UserDBInterface):
|
|||||||
query = users.select()
|
query = users.select()
|
||||||
return await self.database.fetch_all(query)
|
return await self.database.fetch_all(query)
|
||||||
|
|
||||||
|
async def get(self, id: str) -> UserDB:
|
||||||
|
query = users.select().where(User.id == id)
|
||||||
|
return await self.database.fetch_one(query)
|
||||||
|
|
||||||
async def get_by_email(self, email: str) -> UserDB:
|
async def get_by_email(self, email: str) -> UserDB:
|
||||||
query = users.select().where(User.email == email)
|
query = users.select().where(User.email == email)
|
||||||
return await self.database.fetch_one(query)
|
return await self.database.fetch_one(query)
|
||||||
|
|||||||
@ -37,10 +37,14 @@ async def test_queries(user, sqlalchemy_user_db):
|
|||||||
user_db.is_superuser = True
|
user_db.is_superuser = True
|
||||||
await sqlalchemy_user_db.update(user_db)
|
await sqlalchemy_user_db.update(user_db)
|
||||||
|
|
||||||
|
# Get by id
|
||||||
|
id_user = await sqlalchemy_user_db.get(user.id)
|
||||||
|
assert id_user.id == user_db.id
|
||||||
|
assert id_user.is_superuser is True
|
||||||
|
|
||||||
# Get by email
|
# Get by email
|
||||||
email_user = await sqlalchemy_user_db.get_by_email(user.email)
|
email_user = await sqlalchemy_user_db.get_by_email(user.email)
|
||||||
assert email_user.id == user_db.id
|
assert email_user.id == user_db.id
|
||||||
assert email_user.is_superuser is True
|
|
||||||
|
|
||||||
# List
|
# List
|
||||||
users = await sqlalchemy_user_db.list()
|
users = await sqlalchemy_user_db.list()
|
||||||
|
|||||||
Reference in New Issue
Block a user