Mientras uso fastapi-crudrouter, intento que solo su propietario acceda a un recurso.
De alguna manera estoy recibiendo el error
{ "detail": [ { "loc": [ "query", "id" ], "msg": "field required", "type": "value_error.missing" } ] }
El código se pega a continuación. Creo que el error se queja del parámetro de id
faltante. La URL del punto final es como .../support/issue/1
. ¿Cómo puedo hacer que ese 1 se asigne al parámetro id
de la dependencia user_is_owner
?
from fastapi import Depends, HTTPException, status from sqlalchemy.orm import Session from fastapi_crudrouter import SQLAlchemyCRUDRouter from app.support.models import Issue as IssueModel from app.support.schemas import Issue as IssueSchema from app.database import get_db from app.oauth2 import get_current_user def user_is_owner( id: int, db: Session = Depends(get_db), current_user: int = Depends(get_current_user), ): issue = db.query(IssueModel).filter(IssueModel.id == id).first() if not issue: raise HTTPException( status_code=status.HTTP_404_NOT_FOUND, detail=f'Issue with id: {id} was not found.', ) if issue.created_by != current_user.id: raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, detail='Not authorized to perform requested action', ) return True router = SQLAlchemyCRUDRouter( schema=IssueSchema, # create_schema=PotatoCreate, # update_schema=PotatoUpdate, db_model=IssueModel, db=get_db, prefix='/issue', dependencies=[Depends(get_current_user)], # # individual route config # get_all_route=True, # [Depends(is_admin)], get_one_route=[Depends(user_is_owner)], delete_all_route=False, delete_one_route=False, # create_route=False, update_route=False, )