HuyDN
Phase2/HuyDN: add crud jds and cvs
5b2e817
raw
history blame
1.4 kB
from fastapi import APIRouter, UploadFile, File
from typing import Annotated
from app.modules.crud_jds.models.crud_jds import get_all_jds, create_jd, delete_jd
crud_jds_router = APIRouter(prefix="/crud_jds_router", tags=["crud_jds_router"])
# [GET] all JDs
@crud_jds_router.get("/")
async def index():
# Get all documents from the collection with id document
data = get_all_jds()
return data
# [POST] add JD
@crud_jds_router.post("/")
# only upload pdf or json file
async def add_jd(position_applied_for: str, file_jd: Annotated[UploadFile, File(..., description="Upload jd file (upload .txt)")]):
try:
file_jd_type = file_jd.filename.split(".")[-1]
if file_jd_type in ["txt"]:
# create a new document
if create_jd({"position_applied_for": position_applied_for,"jd_url": file_jd}):
return {"message": "JD added successfully"}
else:
return {"message": "Error while adding JD file to database"}
else:
return {"message": "File type not supported"}
except Exception as e:
return {"message": "Error", "error": str(e)}
# [DELETE] JD by id
@crud_jds_router.delete("/{id}")
async def delete_jd_by_id(id: str):
# Delete a document by id
if delete_jd(id):
return {"message": f"JD have id {id} deleted successfully"}
else:
return {"message": "Error"}