Files
MAIA/backend/modules/calendar/service.py
2025-04-17 11:25:21 +02:00

45 lines
1.4 KiB
Python

# modules/calendar/service.py
from sqlalchemy.orm import Session
from datetime import datetime
from modules.calendar.models import CalendarEvent
from core.exceptions import not_found_exception
def create_calendar_event(db: Session, user_id: int, event_data):
event = CalendarEvent(**event_data.dict(), user_id=user_id)
db.add(event)
db.commit()
db.refresh(event)
return event
def get_calendar_events(db: Session, user_id: int, start: datetime, end: datetime):
query = db.query(CalendarEvent).filter(
CalendarEvent.user_id == user_id
)
if start:
query = query.filter(CalendarEvent.start_time >= start)
if end:
query = query.filter(CalendarEvent.end_time <= end)
return query.all()
def update_calendar_event(db: Session, user_id: int, event_id: int, event_data):
event = db.query(CalendarEvent).filter(
CalendarEvent.id == event_id,
CalendarEvent.user_id == user_id
).first()
if not event:
raise not_found_exception()
for key, value in event_data.dict().items():
setattr(event, key, value)
db.commit()
db.refresh(event)
return event
def delete_calendar_event(db: Session, user_id: int, event_id: int):
event = db.query(CalendarEvent).filter(
CalendarEvent.id == event_id,
CalendarEvent.user_id == user_id
).first()
if not event:
raise not_found_exception()
db.delete(event)
db.commit()