Implement 404 on missing id
This commit is contained in:
parent
1fd9f7a9a6
commit
e40df4886f
9
crud.py
9
crud.py
|
@ -1,5 +1,5 @@
|
|||
import sqlalchemy
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
import models
|
||||
|
||||
# import schemas
|
||||
|
@ -28,5 +28,8 @@ def get_movie_by_id(db: Session, id_: str = ""):
|
|||
id_ = int(id_)
|
||||
except ValueError:
|
||||
pass
|
||||
db_movie = db.query(models.Movie).filter(models.Movie.id == id_)
|
||||
return db_movie.one()
|
||||
try:
|
||||
db_movie = db.query(models.Movie).filter(models.Movie.id == id_).one()
|
||||
except sqlalchemy.exc.NoResultFound:
|
||||
raise LookupError
|
||||
return db_movie
|
||||
|
|
12
dev.py
12
dev.py
|
@ -1,4 +1,4 @@
|
|||
from fastapi import FastAPI, Depends, Request
|
||||
from fastapi import FastAPI, Depends, Request, HTTPException
|
||||
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
|
@ -47,9 +47,13 @@ async def create_movie(
|
|||
|
||||
@app.get("/movies/{id_}")
|
||||
async def get_movie(id_: str, db: Session = Depends(get_db)):
|
||||
movie = crud.get_movie_by_id(db, id_)
|
||||
out = {k: v for (k, v) in movie.__dict__.items() if not k.startswith("_")}
|
||||
return out
|
||||
try:
|
||||
movie = crud.get_movie_by_id(db, id_)
|
||||
out = {k: v for (k, v) in movie.__dict__.items() if not k.startswith("_")}
|
||||
except LookupError:
|
||||
raise HTTPException(status_code=404, detail=f"No movie found with id {id_}")
|
||||
else:
|
||||
return out
|
||||
|
||||
|
||||
@app.get("/movies/")
|
||||
|
|
Loading…
Reference in New Issue