sumaq/backend/services/activities.py

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