Bot is functional after full refactor
This commit is contained in:
@@ -1,21 +1,32 @@
|
||||
from users.models import User
|
||||
from hotels.models import Hotel, Reservation
|
||||
from hotels.models import Hotel, Reservation, UserHotel
|
||||
from asgiref.sync import sync_to_async
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
|
||||
async def get_user_from_chat_id(chat_id):
|
||||
return await sync_to_async(User.objects.filter(chat_id=chat_id).first)()
|
||||
try:
|
||||
return await sync_to_async(User.objects.get)(chat_id=chat_id)
|
||||
except ObjectDoesNotExist:
|
||||
return None
|
||||
|
||||
async def get_hotel_by_id(hotel_id):
|
||||
return await sync_to_async(Hotel.objects.get)(id=hotel_id)
|
||||
try:
|
||||
return await sync_to_async(Hotel.objects.get)(id=hotel_id)
|
||||
except ObjectDoesNotExist:
|
||||
return None
|
||||
|
||||
async def get_hotel_by_name(hotel_name):
|
||||
try:
|
||||
return await sync_to_async(Hotel.objects.get)(name=hotel_name)
|
||||
except ObjectDoesNotExist:
|
||||
return None
|
||||
|
||||
async def get_hotels_for_user(user):
|
||||
"""Получение отелей, связанных с пользователем."""
|
||||
# Проверяем, является ли пользователь сотрудником какого-либо отеля
|
||||
user_hotels = await sync_to_async(list)(
|
||||
Hotel.objects.filter(user_hotel__user=user).distinct()
|
||||
return await sync_to_async(list)(
|
||||
UserHotel.objects.filter(user=user).select_related('hotel')
|
||||
)
|
||||
print(user_hotels)
|
||||
return user_hotels
|
||||
|
||||
|
||||
async def get_reservations(hotel_id, start_date=None, end_date=None):
|
||||
query = Reservation.objects.filter(hotel_id=hotel_id)
|
||||
@@ -23,4 +34,4 @@ async def get_reservations(hotel_id, start_date=None, end_date=None):
|
||||
query = query.filter(check_in__gte=start_date)
|
||||
if end_date:
|
||||
query = query.filter(check_out__lte=end_date)
|
||||
return await sync_to_async(list)(query.prefetch_related('guests'))
|
||||
return await sync_to_async(list)(query.prefetch_related('guests'))
|
||||
Reference in New Issue
Block a user