33 lines
1.0 KiB
Python
33 lines
1.0 KiB
Python
from aiogram.types import User
|
|
from aiogram_dialog import DialogManager
|
|
|
|
from app.infrastructure.database.crud import (
|
|
get_event_by_id,
|
|
get_events_list,
|
|
)
|
|
from app.infrastructure.database.models import Event
|
|
|
|
|
|
async def events_list_getter(
|
|
dialog_manager: DialogManager, event_from_user: User, **kwargs
|
|
) -> dict[str, str]:
|
|
events = await get_events_list(dialog_manager.middleware_data["session"])
|
|
return {"events": [{"title": event.title, "id": event.id} for event in events]}
|
|
|
|
|
|
async def event_getter(dialog_manager: DialogManager, **kwargs) -> dict[str, Event]:
|
|
return {
|
|
"event_obj": await get_event_by_id(
|
|
dialog_manager.middleware_data["session"],
|
|
int(dialog_manager.dialog_data["selected_event"]),
|
|
)
|
|
}
|
|
|
|
|
|
async def registraion_getter(dialog_manager: DialogManager, **kwargs):
|
|
user = dialog_manager.middleware_data["user"]
|
|
event_id = dialog_manager.dialog_data["selected_event"]
|
|
return {
|
|
"is_registered_to_event": any(ue.event_id == event_id for ue in user.events)
|
|
}
|