Skip to content

User

UserDAO

Class for accessing user table.

Source code in hestia/db/dao/user.py
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
class UserDAO:
    """Class for accessing user table."""

    def __init__(self, session: AsyncSession = Depends(get_db_session)):
        self.session = session

    async def create_user_model(self, user_dto: UserModelDTO) -> None:
        """
        Add single user to session.

        :param user_dto: user data.
        """
        self.session.add(User(**user_dto.dict()))

    async def get_all_users(self, limit: int, offset: int) -> List[User]:
        """
        Get all User models with limit/offset pagination.

        :param limit: limit of dummies.
        :param offset: offset of dummies.
        :return: stream of dummies.
        """
        raw_users = await self.session.execute(
            select(User).limit(limit).offset(offset),
        )
        return list(raw_users.scalars().fetchall())

    async def filter(
        self,
        username: Optional[str] = None,
    ) -> List[User]:
        """
        Get specific user model.

        :param name: name of username instance.
        :return: user models.
        """
        query = select(User)
        if username:
            query = query.where(User.username == username)
        rows = await self.session.execute(query)
        return list(rows.scalars().fetchall())

create_user_model(user_dto) async

Add single user to session.

Parameters:

Name Type Description Default
user_dto UserModelDTO

user data.

required
Source code in hestia/db/dao/user.py
18
19
20
21
22
23
24
async def create_user_model(self, user_dto: UserModelDTO) -> None:
    """
    Add single user to session.

    :param user_dto: user data.
    """
    self.session.add(User(**user_dto.dict()))

filter(username=None) async

Get specific user model.

Parameters:

Name Type Description Default
name

name of username instance.

required

Returns:

Type Description
List[User]

user models.

Source code in hestia/db/dao/user.py
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
async def filter(
    self,
    username: Optional[str] = None,
) -> List[User]:
    """
    Get specific user model.

    :param name: name of username instance.
    :return: user models.
    """
    query = select(User)
    if username:
        query = query.where(User.username == username)
    rows = await self.session.execute(query)
    return list(rows.scalars().fetchall())

get_all_users(limit, offset) async

Get all User models with limit/offset pagination.

Parameters:

Name Type Description Default
limit int

limit of dummies.

required
offset int

offset of dummies.

required

Returns:

Type Description
List[User]

stream of dummies.

Source code in hestia/db/dao/user.py
26
27
28
29
30
31
32
33
34
35
36
37
async def get_all_users(self, limit: int, offset: int) -> List[User]:
    """
    Get all User models with limit/offset pagination.

    :param limit: limit of dummies.
    :param offset: offset of dummies.
    :return: stream of dummies.
    """
    raw_users = await self.session.execute(
        select(User).limit(limit).offset(offset),
    )
    return list(raw_users.scalars().fetchall())