42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
from fastapi import APIRouter, Depends, HTTPException, status
|
|
from sqlalchemy.orm import Session
|
|
from typing import List
|
|
|
|
# database
|
|
from database import get_db
|
|
from models.Calendar import Calenders
|
|
from schemas.CreateSchemas import CalendarCreate
|
|
from schemas.ResponseSchemas import Calendar
|
|
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/", response_model=List[Calendar])
|
|
def get_calendar_events(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)):
|
|
"""
|
|
Get a list of calendar events with optional pagination.
|
|
"""
|
|
# Placeholder for actual database query
|
|
events = db.query("CalendarEvents").offset(skip).limit(limit).all()
|
|
return events
|
|
|
|
|
|
@router.post("/", response_model=Calendar, status_code=status.HTTP_201_CREATED)
|
|
def create_calendar_event(event: CalendarCreate, db: Session = Depends(get_db)):
|
|
"""
|
|
Create a new calendar event.
|
|
"""
|
|
try:
|
|
db_event = Calenders(**event.model_dump())
|
|
db.add(db_event)
|
|
db.commit()
|
|
db.refresh(db_event)
|
|
return db_event
|
|
except Exception as e:
|
|
db.rollback()
|
|
raise HTTPException(
|
|
status_code=500,
|
|
detail=str(e.__cause__),
|
|
) from e
|