Skip to content

Commit

Permalink
task1_attempt1
Browse files Browse the repository at this point in the history
  • Loading branch information
evg1995gon committed Sep 13, 2023
1 parent 40e587f commit 1e59bab
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 3 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,5 @@ fill_db.log

# Frontend build
frontend/

venv/
11 changes: 9 additions & 2 deletions src/core/db/repository/administrator_invitation.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
from uuid import UUID

from fastapi import Depends
from sqlalchemy import and_, select
from sqlalchemy import and_, not_, select
from sqlalchemy.ext.asyncio import AsyncSession

from src.core import exceptions
from src.core.db.db import get_session
from src.core.db.models import AdministratorInvitation
from src.core.db.models import Administrator, AdministratorInvitation
from src.core.db.repository import AbstractRepository


Expand All @@ -27,3 +27,10 @@ async def get_mail_request_by_token(self, token: UUID) -> Optional[Administrator
if result is None:
raise exceptions.AdministratorInvitationInvalidError
return result

async def get_all_invitations(self):
"""Возвращает из БД список приглашений, email которых не состоят в списке администраторов."""
statement = select(AdministratorInvitation).where(
not_(AdministratorInvitation.email.in_(select(Administrator.email)))
)
return (await self._session.scalars(statement)).all()
2 changes: 1 addition & 1 deletion src/core/services/administrator_invitation.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ async def close_invitation(self, token: UUID) -> None:
await self.__administrator_mail_request_repository.update(invitation.id, invitation)

async def list_all_invitations(self) -> list[AdministratorInvitation]:
return await self.__administrator_mail_request_repository.get_all()
return await self.__administrator_mail_request_repository.get_all_invitations()

async def get_invitation_by_id(self, invitation_id: UUID) -> AdministratorInvitation:
return await self.__administrator_mail_request_repository.get(invitation_id)
Expand Down

0 comments on commit 1e59bab

Please sign in to comment.