copied the code from the working repo

This commit is contained in:
2024-11-30 16:00:48 +03:00
parent f22b92869b
commit 15ac0cb9b8
148 changed files with 23342 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
from fastapi import status, HTTPException, APIRouter, Depends, UploadFile
from fastapi.responses import FileResponse
from sqlalchemy.orm import Session
from minio import Minio
from typing import List
from io import BytesIO
from os import remove
from starlette.background import BackgroundTask
from ..database import get_db
from ..storage import get_client
from .. import models, schemas, security
router = APIRouter(
prefix="/services",
dependencies=[Depends(security.verify_api_key)],
tags=['Services']
)
@router.get("/resume/{filename}")
def get_resume(filename: str, client: Minio = Depends(get_client)):
response = client.fget_object("tgjobs", filename, filename)
if not response:
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND)
task = BackgroundTask(remove, filename)
return FileResponse(path=filename, filename=response.object_name, media_type=response.content_type, background=task)
@router.get("/hardskills/", response_model=List[schemas.Hard_skill])
def get_all_hardskills(db: Session = Depends(get_db)):
hardskills = db.query(models.Hard_skills).filter(models.Hard_skills.Title.ilike("%")).all()
if not hardskills:
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND)
return hardskills
@router.get("/hardskills/{title}", response_model=List[schemas.Hard_skill])
def get_hardskills(title: str, db: Session = Depends(get_db)):
hardskills = db.query(models.Hard_skills).filter(models.Hard_skills.Title.ilike("%" + title + "%")).all()
if not hardskills:
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND)
return hardskills
@router.post("/resume/")
async def upload_resume_to_cloud(file: UploadFile, client: Minio = Depends(get_client)):
response = client.put_object("tgjobs", file.filename, BytesIO(await file.read()), file.size, file.content_type)
if not response:
raise HTTPException(status_code=status.HTTP_409_CONFLICT)
return {"filename": response.object_name}