|
|
@@ -0,0 +1,71 @@ |
|
|
|
from fastapi import Depends, APIRouter, HTTPException, status |
|
|
|
from sqlalchemy.orm import Session |
|
|
|
from db.session import get_db |
|
|
|
from db.repository.fuelingtask import ( |
|
|
|
create_fueling_task, |
|
|
|
delete_fueling_task, |
|
|
|
get_fueling_task_by_id |
|
|
|
) |
|
|
|
from schemas.fuelingtask import CreateFuelingTask |
|
|
|
from db.models.user import User |
|
|
|
from apis.v1.route_auth import get_current_user |
|
|
|
|
|
|
|
router = APIRouter() |
|
|
|
|
|
|
|
@router.post("/", status_code=status.HTTP_201_CREATED) |
|
|
|
def create_fuelingtask( |
|
|
|
fuelingtask: CreateFuelingTask, |
|
|
|
db: Session = Depends(get_db), |
|
|
|
current_user: User = Depends(get_current_user), |
|
|
|
): |
|
|
|
if current_user.Role != "FuelingPerson" and current_user.Role != "Admin": |
|
|
|
raise HTTPException( |
|
|
|
status_code=403, detail="You are not authorized to perform this action" |
|
|
|
) |
|
|
|
|
|
|
|
fuelingtask_res = create_fueling_task( |
|
|
|
fueling_task=fuelingtask, current_user=current_user.Id, db=db |
|
|
|
) |
|
|
|
|
|
|
|
if fuelingtask_res == "nodriver": |
|
|
|
raise HTTPException( |
|
|
|
status_code=404, detail="Driver ID not found" |
|
|
|
) |
|
|
|
|
|
|
|
if fuelingtask_res == "novehicle": |
|
|
|
raise HTTPException( |
|
|
|
status_code=404, detail="Vehicle ID not found" |
|
|
|
) |
|
|
|
return fuelingtask_res |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@router.get("/{fueling_task_id}", status_code=status.HTTP_200_OK) |
|
|
|
def get_fuelingtask( |
|
|
|
fueling_task_id: int, |
|
|
|
db: Session = Depends(get_db), |
|
|
|
current_user: User = Depends(get_current_user), |
|
|
|
): |
|
|
|
if current_user.Role != "FuelingPerson" and current_user.Role != "Admin": |
|
|
|
raise HTTPException( |
|
|
|
status_code=403, detail="You are not authorized to perform this action" |
|
|
|
) |
|
|
|
|
|
|
|
fuelingtask = get_fueling_task_by_id(fueling_task_id, db) |
|
|
|
return fuelingtask |
|
|
|
|
|
|
|
@router.delete("/{fueling_task_id}", status_code=status.HTTP_204_NO_CONTENT) |
|
|
|
def delete_fuelingtask( |
|
|
|
fueling_task_id: int, |
|
|
|
db: Session = Depends(get_db), |
|
|
|
current_user: User = Depends(get_current_user), |
|
|
|
): |
|
|
|
if current_user.Role != "FuelingPerson" and current_user.Role != "Admin": |
|
|
|
raise HTTPException( |
|
|
|
status_code=403, detail="You are not authorized to perform this action" |
|
|
|
) |
|
|
|
|
|
|
|
if not delete_fueling_task(fueling_task_id, db): |
|
|
|
raise HTTPException( |
|
|
|
status_code=404, detail="Fueling task not found" |
|
|
|
) |