From 442de8036a5be0774432db6ceed00b1dc642b983 Mon Sep 17 00:00:00 2001 From: Cliff Hill Date: Sat, 23 Aug 2025 21:14:30 -0400 Subject: [PATCH] Adjusted sql to the way the tables are now defined. Signed-off-by: Cliff Hill --- backend/src/backend/services/invitees.py | 46 ++++++++---------------- backend/src/backend/services/users.py | 2 +- 2 files changed, 15 insertions(+), 33 deletions(-) diff --git a/backend/src/backend/services/invitees.py b/backend/src/backend/services/invitees.py index be1a5b66..a324d9a5 100644 --- a/backend/src/backend/services/invitees.py +++ b/backend/src/backend/services/invitees.py @@ -5,14 +5,12 @@ from typing import cast from sqlalchemy import delete from sqlalchemy import select -from sqlalchemy.exc import NoResultFound from sqlalchemy.ext.asyncio import AsyncSession from backend.models import Booking from backend.models import Invitee from backend.models import Room from backend.models import User -from backend.services.users import get_user_by_email logger = logging.getLogger(__name__) @@ -43,29 +41,24 @@ async def get_invitees_for_booking(session: AsyncSession, booking_id: int) -> Us async def add_invitee_to_booking( - session: AsyncSession, booking_id: int, email: str + session: AsyncSession, booking_id: int, user_email: str ) -> Invitee: """Add an invitee to a booking.""" logger.debug( - f"Entering add_invitee_to_booking with booking_id: {booking_id}, email: {email}" + f"Entering add_invitee_to_booking with booking_id: {booking_id}, email: {user_email}" ) try: - user = await get_user_by_email(session, email) - invitee = Invitee(booking_id=booking_id, user_id=user.id) + invitee = Invitee(booking_id=booking_id, user_email=user_email) session.add(invitee) await session.commit() logger.info( - f"Successfully added invitee with email {email} to booking_id: {booking_id}" + f"Successfully added invitee with email {user_email} to booking_id: {booking_id}" ) return invitee - except NoResultFound as e: - logger.error( - f"User with email {email} does not exist for booking_id {booking_id}" - ) - raise ValueError(f"User with email {email} does not exist.") from e except Exception as e: logger.error( - f"Failed to add invitee with email {email} to booking_id {booking_id}: {str(e)}" + f"Failed to add invitee with email {user_email} to" + f" booking_id {booking_id}: {str(e)}" ) await session.rollback() raise @@ -74,37 +67,26 @@ async def add_invitee_to_booking( async def remove_invitee_from_booking( - session: AsyncSession, booking_id: int, email: str + session: AsyncSession, booking_id: int, user_email: str ) -> None: """Remove an invitee from a booking.""" logger.debug( - f"Entering remove_invitee_from_booking with booking_id: {booking_id}, email: {email}" + f"Entering remove_invitee_from_booking with" + f" booking_id: {booking_id}, email: {user_email}" ) try: - user = await get_user_by_email(session, email) stmt = delete(Invitee).where( - Invitee.booking_id == booking_id, Invitee.user_id == user.id + Invitee.booking_id == booking_id, Invitee.user_email == user_email ) - result = await session.execute(stmt) - if result.rowcount == 0: - logger.error( - f"No invitee with email {email} found for booking_id {booking_id}" - ) - raise ValueError( - f"No invitee with email {email} found for booking_id {booking_id}" - ) + await session.execute(stmt) await session.commit() logger.info( - f"Successfully removed invitee with email {email} from booking_id: {booking_id}" + f"Successfully removed invitee with email {user_email} from" + f" booking_id: {booking_id}" ) - except NoResultFound as e: - logger.error( - f"User with email {email} does not exist for booking_id {booking_id}" - ) - raise ValueError(f"User with email {email} does not exist.") from e except Exception as e: logger.error( - f"Failed to remove invitee with email {email}" + f"Failed to remove invitee with email {user_email}" f" from booking_id {booking_id}: {str(e)}" ) await session.rollback() diff --git a/backend/src/backend/services/users.py b/backend/src/backend/services/users.py index 68174005..2a627452 100644 --- a/backend/src/backend/services/users.py +++ b/backend/src/backend/services/users.py @@ -35,7 +35,7 @@ async def get_users(session: AsyncSession) -> UserList: logger.debug("Exiting get_users") -async def get_user_by_email(session: AsyncSession, email: str) -> User: +async def get_user(session: AsyncSession, email: str) -> User: """Retrieve a user by their email address.""" logger.debug(f"Entering get_user_by_email with email: {email}") try: