Skip to content
This repository has been archived by the owner on Apr 14, 2024. It is now read-only.

Commit

Permalink
task/189 set page and per_page as default value
Browse files Browse the repository at this point in the history
  • Loading branch information
vanvanich9 committed Nov 24, 2023
1 parent 7704295 commit 13bfc9c
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 36 deletions.
18 changes: 8 additions & 10 deletions sapphire/messenger/database/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,17 +53,16 @@ async def get_chats(
session: AsyncSession,
user_id: uuid.UUID,
members: set[uuid.UUID] | Type[Empty] = Empty,
page: int | Type[Empty] = Empty,
per_page: int | Type[Empty] = Empty,
page: int = 1,
per_page: int = 10,
) -> list[Chat]:
query = select(Chat).order_by(Chat.created_at.desc())

filters = await self._get_chats_filters(user_id=user_id, members=members)
query = query.where(*filters)

if page is not Empty and per_page is not Empty:
offset = (page - 1) * per_page
query = query.limit(per_page).offset(offset)
offset = (page - 1) * per_page
query = query.limit(per_page).offset(offset)

result = await session.execute(query)

Expand Down Expand Up @@ -103,16 +102,15 @@ async def get_chat_messages(
self,
session: AsyncSession,
chat_id: uuid.UUID,
page: int | Type[Empty] = Empty,
per_page: int | Type[Empty] = Empty,
page: int = 1,
per_page: int = 10,
) -> list[Message]:
query = (
select(Message).where(Message.chat_id == chat_id).order_by(Message.created_at.desc())
)

if page is not Empty and per_page is not Empty:
offset = (page - 1) * per_page
query = query.limit(per_page).offset(offset)
offset = (page - 1) * per_page
query = query.limit(per_page).offset(offset)

result = await session.execute(query)

Expand Down
9 changes: 4 additions & 5 deletions sapphire/notifications/database/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,15 +61,14 @@ async def get_notifications(
session: AsyncSession,
recipient_id: uuid.UUID,
is_read: bool | Type[Empty] = Empty,
page: int | Type[Empty] = Empty,
per_page: int | Type[Empty] = Empty,
page: int = 1,
per_page: int = 10,
) -> list[Notification]:
filters = await self._get_notifications_filters(recipient_id=recipient_id, is_read=is_read)
stmt = select(Notification).where(*filters)

if page is not Empty and per_page is not Empty:
offset = (page - 1) * per_page
stmt = stmt.limit(per_page).offset(offset)
offset = (page - 1) * per_page
stmt = stmt.limit(per_page).offset(offset)

result = await session.execute(stmt)

Expand Down
9 changes: 4 additions & 5 deletions sapphire/projects/database/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -569,18 +569,17 @@ async def get_project_history(
self,
session: AsyncSession,
project_id: uuid.UUID,
page: int | Type[Empty] = Empty,
per_page: int | Type[Empty] = Empty,
page: int = 1,
per_page: int = 10,
) -> list[ProjectHistory]:
query = (
select(ProjectHistory)
.where(ProjectHistory.project_id == project_id)
.order_by(ProjectHistory.created_at.desc())
)

if page is not Empty and per_page is not Empty:
offset = (page - 1) * per_page
query = query.limit(per_page).offset(offset)
offset = (page - 1) * per_page
query = query.limit(per_page).offset(offset)

result = await session.execute(query)

Expand Down
27 changes: 12 additions & 15 deletions sapphire/storage/database/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,19 +54,18 @@ async def get_specializations(
self,
session: AsyncSession,
query_text: str | Type[Empty] = Empty,
page: int | Type[Empty] = Empty,
per_page: int | Type[Empty] = Empty,
group_id: uuid.UUID | Type[Empty] = Empty,
page: int = 1,
per_page: int = 10,
) -> list[Specialization]:
query = select(Specialization).order_by(desc(Specialization.created_at))

filters = await self._get_specializations_filters(query_text=query_text, group_id=group_id)

query = query.where(*filters)

if page is not None and per_page is not None:
offset = (page - 1) * per_page
query = query.limit(per_page).offset(offset)
offset = (page - 1) * per_page
query = query.limit(per_page).offset(offset)

specializations = await session.execute(query)

Expand Down Expand Up @@ -116,17 +115,16 @@ async def get_specialization_groups(
self,
session: AsyncSession,
query_text: str | Type[Empty] = Empty,
page: int | Type[Empty] = Empty,
per_page: int | Type[Empty] = Empty,
page: int = 1,
per_page: int = 10,
) -> list[SpecializationGroup]:
query = select(SpecializationGroup).order_by(desc(SpecializationGroup.created_at))

filters = await self._get_specialization_groups_filters(query_text=query_text)
query = query.where(*filters)

if page is not Empty and per_page is not Empty:
offset = (page - 1) * per_page
query = query.limit(per_page).offset(offset)
offset = (page - 1) * per_page
query = query.limit(per_page).offset(offset)

specialization_groups = await session.execute(query)

Expand Down Expand Up @@ -176,8 +174,8 @@ async def get_skills(
session: AsyncSession,
query_text: str | Type[Empty] = Empty,
skill_ids: list[uuid.UUID] | Type[Empty] = Empty,
page: int | Type[Empty] = Empty,
per_page: int | Type[Empty] = Empty,
page: int = 1,
per_page: int = 10,
) -> list[Skill]:
query = select(Skill).order_by(desc(Skill.created_at))

Expand All @@ -186,9 +184,8 @@ async def get_skills(
query = query.where(*filters)
skills = await session.execute(query)

if page is not Empty and per_page is not Empty:
offset = (page - 1) * per_page
query = query.limit(per_page).offset(offset)
offset = (page - 1) * per_page
query = query.limit(per_page).offset(offset)

return list(skills.unique().scalars().all())

Expand Down
10 changes: 9 additions & 1 deletion tests/storage/database/test_storage_database_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
async def test_get_specialization_groups_without_filters(database_service: StorageDatabaseService):
session = MagicMock()
name = "Developer"
page = 1
per_page = 10
offset = (page - 1) * per_page

expected_specialization_groups = [SpecializationGroup(name=name)]
mock_specialization_group = MagicMock()
Expand All @@ -20,7 +23,12 @@ async def test_get_specialization_groups_without_filters(database_service: Stora

session.execute = AsyncMock(return_value=mock_specialization_group)

expected_query = select(SpecializationGroup).order_by(desc(SpecializationGroup.created_at))
expected_query = (
select(SpecializationGroup)
.order_by(desc(SpecializationGroup.created_at))
.limit(per_page)
.offset(offset)
)

specialization_groups = await database_service.get_specialization_groups(session=session)

Expand Down

0 comments on commit 13bfc9c

Please sign in to comment.