mirror of
				https://github.com/fastapi-users/fastapi-users.git
				synced 2025-11-04 14:45:50 +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