ARCHIVISE / app /routers /projects.py
UNI12345's picture
Initialize Archvise API backend for Hugging Face Spaces
50925ca
Raw
History Blame Contribute Delete
1.32 kB
from fastapi import APIRouter, Depends, Query
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.future import select
from typing import List
from app.database import get_db
from app import models, schemas
from app.utils.security import get_current_user
router = APIRouter(prefix="/projects", tags=["Projects"])
@router.get("/recent", response_model=List[schemas.ProjectResponse])
async def get_recent_projects(
current_user: models.User = Depends(get_current_user),
db: AsyncSession = Depends(get_db)
):
result = await db.execute(
select(models.Project)
.where(models.Project.user_id == current_user.id)
.order_by(models.Project.created_at.desc())
.limit(6)
)
return result.scalars().all()
@router.get("/all", response_model=List[schemas.ProjectResponse])
async def get_all_projects(
page: int = Query(1, ge=1),
limit: int = Query(20, ge=1, le=100),
current_user: models.User = Depends(get_current_user),
db: AsyncSession = Depends(get_db)
):
offset = (page - 1) * limit
result = await db.execute(
select(models.Project)
.where(models.Project.user_id == current_user.id)
.order_by(models.Project.created_at.desc())
.offset(offset)
.limit(limit)
)
return result.scalars().all()