fix docker-compose
This commit is contained in:
@@ -2,12 +2,16 @@ from datetime import datetime
|
||||
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from sqlalchemy.orm import selectinload
|
||||
|
||||
from .models import Event, User
|
||||
from .enums import UserEventStatus
|
||||
from .models import Event, User, UserEvent
|
||||
|
||||
|
||||
async def get_user_by_tg_id(session: AsyncSession, user_tg_id: int) -> User | None:
|
||||
result = await session.execute(select(User).where(User.tg_id == user_tg_id))
|
||||
result = await session.execute(
|
||||
select(User).options(selectinload(User.events)).where(User.tg_id == user_tg_id)
|
||||
)
|
||||
return result.scalar_one_or_none()
|
||||
|
||||
|
||||
@@ -94,4 +98,33 @@ async def update_event(
|
||||
if end_date:
|
||||
event.end_date = end_date
|
||||
await session.commit()
|
||||
return event
|
||||
return event
|
||||
|
||||
|
||||
async def register_user_to_event(session: AsyncSession, user_id: int, event_id: int):
|
||||
user_event = (
|
||||
await session.execute(
|
||||
select(UserEvent).where(
|
||||
(UserEvent.user_id == user_id) & (UserEvent.event_id == event_id)
|
||||
)
|
||||
)
|
||||
).scalar_one_or_none()
|
||||
if user_event is None:
|
||||
user_event = UserEvent(user_id=user_id, event_id=event_id)
|
||||
session.add(user_event)
|
||||
await session.flush()
|
||||
if user_event.status == UserEventStatus.CANCELLED.value:
|
||||
user_event.status = UserEventStatus.NOT_CONFIRMED.value
|
||||
await session.commit()
|
||||
|
||||
|
||||
async def unregister_user_to_event(session: AsyncSession, user_id: int, event_id: int):
|
||||
user_event = (
|
||||
await session.execute(
|
||||
select(UserEvent).where(
|
||||
(UserEvent.user_id == user_id) & (UserEvent.event_id == event_id)
|
||||
)
|
||||
)
|
||||
).scalar_one()
|
||||
user_event.status = UserEventStatus.CANCELLED.value
|
||||
await session.commit()
|
||||
|
||||
Reference in New Issue
Block a user