skillsync-backend / app /api /routes /versions.py
GitHub Actions
sync: github commit e4109213b5cedf256d6e30f65518976b7d530541 to HF Space
19dc325
Raw
History Blame Contribute Delete
1.27 kB
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from typing import List, Optional
from datetime import datetime
from pydantic import BaseModel
from app.db.session import SessionLocal
from app.models.resume import Resume
from app.api.deps import get_current_user
from app.models.user import User
router = APIRouter()
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
class ResumeVersionResponse(BaseModel):
resume_id: str
filename: str
version_number: int
version_label: Optional[str] = None
upload_time: datetime
latest_ats_score: Optional[int] = None
@router.get("/{filename}", response_model=List[ResumeVersionResponse])
async def get_resume_versions(
filename: str,
db: Session = Depends(get_db),
current_user: User = Depends(get_current_user)
):
"""
Get all versions of a specific resume file.
"""
versions = db.query(Resume)\
.filter(Resume.user_id == current_user.id, Resume.filename == filename)\
.order_by(Resume.version_number.desc())\
.all()
if not versions:
raise HTTPException(status_code=404, detail="No resume found with this filename")
return versions