keepme-backend / src /utils /_meeting_utils.py
ramanjitsingh1368's picture
Add pytz dependency and enhance meeting time handling with timezone support
197512a
from datetime import datetime, timezone, timedelta
class MeetingUtils:
def __init__(self):
pass
async def __aenter__(self):
return self
async def __aexit__(self, *args):
pass
async def get_millis_utc(self, dt: datetime):
return int(dt.replace(tzinfo=timezone.utc).timestamp() * 1000)
async def millis_to_datetime(self, millis, offset=0):
dt_utc = datetime.fromtimestamp(millis / 1000, tz=timezone.utc)
dt_offset = dt_utc + timedelta(hours=offset) # Apply timezone offset
return dt_offset.strftime("%Y-%m-%d %H:%M:%S")
async def check_availability(self, response, duration_ms, offset=0):
availabilities = (
response["linkAvailability"]["linkAvailabilityByDuration"]
.get(str(duration_ms), {})
.get("availabilities", [])
)
available_slots = []
for slot in availabilities:
start_time = await self.millis_to_datetime(slot["startMillisUtc"], offset)
end_time = await self.millis_to_datetime(slot["endMillisUtc"], offset)
available_slots.append({"start": start_time, "end": end_time})
return available_slots