Spaces:
Sleeping
Sleeping
| 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 | |
| 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 | |