35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
from sqlalchemy.orm import Session
|
|
from typing import Optional
|
|
from models import Activity, User
|
|
from schemas import ActivityCreate
|
|
from fastapi import HTTPException
|
|
|
|
def get_activities(db: Session, current_user: User, project_id: Optional[int] = None,
|
|
specialty_id: Optional[int] = None,
|
|
skip: int = 0,
|
|
limit: int = 100):
|
|
|
|
query = db.query(Activity)
|
|
if project_id:
|
|
query = query.filter(Activity.project_id == project_id)
|
|
if specialty_id:
|
|
query = query.filter(Activity.specialty_id == specialty_id)
|
|
|
|
activities = query.offset(skip).limit(limit).all()
|
|
return activities
|
|
|
|
def get_activity(db: Session, activity_id: int):
|
|
db_activity = db.query(Activity).filter(Activity.id == activity_id).first()
|
|
if db_activity is None:
|
|
raise HTTPException(status_code=404, detail="Activity not found")
|
|
return db_activity
|
|
|
|
def create_activity(db: Session, activity: ActivityCreate, current_user: User):
|
|
db_activity = Activity(
|
|
**activity.dict(),
|
|
user_id=current_user.id
|
|
)
|
|
db.add(db_activity)
|
|
db.commit()
|
|
db.refresh(db_activity)
|
|
return db_activity |