Skip to content

Commit

Permalink
the same table names in the docs (#220)
Browse files Browse the repository at this point in the history
  • Loading branch information
sinisaos committed Apr 2, 2023
1 parent 193a73e commit 1efb862
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 37 deletions.
18 changes: 9 additions & 9 deletions docs/source/fastapi/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -84,22 +84,22 @@ We also mark one of the endpoints as deprecated.
from piccolo_api.fastapi.endpoints import FastAPIWrapper, FastAPIKwargs
from piccolo_api.crud.endpoints import PiccoloCRUD
from my_app.tables import Task
from my_app.tables import Movie
app = FastAPI()
FastAPIWrapper(
root_url="/task/",
root_url="/movie/",
fastapi_app=app,
piccolo_crud=PiccoloCRUD(
table=Task,
table=Movie,
read_only=False,
),
fastapi_kwargs=FastAPIKwargs(
all_routes={'tags': ['Task']}, # Added to all endpoints
get={'deprecated': True}, # Just added to the 'get' endpoint
all_routes={"tags": ["Movie"]}, # Added to all endpoints
get={"deprecated": True}, # Just added to the 'get' endpoint
)
)
Expand Down Expand Up @@ -127,21 +127,21 @@ endpoints with unsafe HTTP methods.
from piccolo_api.fastapi.endpoints import FastAPIWrapper, FastAPIKwargs
from piccolo_api.crud.endpoints import PiccoloCRUD
from my_app.tables import Task
from my_app.tables import Movie
app = FastAPI()
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="login")
FastAPIWrapper(
root_url="/task/",
root_url="/movie/",
fastapi_app=app,
piccolo_crud=PiccoloCRUD(
table=Task,
table=Movie,
read_only=False,
),
fastapi_kwargs=FastAPIKwargs(
all_routes={'tags': ['Task']}, # Added to all endpoints
all_routes={"tags": ["Movie"]}, # Added to all endpoints
post={"dependencies": [Depends(oauth2_scheme)]}, # protected route
put={"dependencies": [Depends(oauth2_scheme)]}, # protected route
patch={"dependencies": [Depends(oauth2_scheme)]}, # protected route
Expand Down
58 changes: 30 additions & 28 deletions docs/source/session_auth/examples/example.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

from fastapi import FastAPI
from fastapi.responses import JSONResponse
from home.tables import Task # An example Table
from home.tables import Movie # An example Table
from piccolo.engine import engine_finder
from piccolo_admin.endpoints import create_admin
from starlette.middleware import Middleware
Expand All @@ -23,7 +23,7 @@
Mount(
"/admin/",
create_admin(
tables=[Task],
tables=[Movie],
# Required when running under HTTPS:
# allowed_hosts=['my_site.com']
),
Expand Down Expand Up @@ -71,50 +71,52 @@
# Example FastAPI endpoints and Pydantic models.


TaskModelIn: t.Any = create_pydantic_model(
table=Task, model_name="TaskModelIn"
MovieModelIn: t.Any = create_pydantic_model(
table=Movie, model_name="MovieModelIn"
)

TaskModelOut: t.Any = create_pydantic_model(
table=Task, include_default_columns=True, model_name="TaskModelOut"
MovieModelOut: t.Any = create_pydantic_model(
table=Movie, include_default_columns=True, model_name="MovieModelOut"
)


@private_app.get("/tasks/", response_model=t.List[TaskModelOut])
async def tasks():
return await Task.select().order_by(Task._meta.primary_key)
@private_app.get("/movies/", response_model=t.List[MovieModelOut])
async def movies():
return await Movie.select().order_by(Movie._meta.primary_key)


@private_app.post("/tasks/", response_model=TaskModelOut)
async def create_task(task_model: TaskModelIn):
task = Task(**task_model.dict())
await task.save()
return TaskModelOut(**task.to_dict())
@private_app.post("/movies/", response_model=MovieModelOut)
async def create_movie(movie_model: MovieModelIn):
movie = Movie(**movie_model.dict())
await movie.save()
return MovieModelOut(**movie.to_dict())


@private_app.put("/tasks/{task_id}/", response_model=TaskModelOut)
async def update_task(task_id: int, task_model: TaskModelIn):
task = await Task.objects().get(Task._meta.primary_key == task_id)
if not task:
@private_app.put("/movies/{movie_id}/", response_model=MovieModelOut)
async def update_movie(movie_id: int, movie_model: MovieModelIn):
movie = await Movie.objects().get(Movie._meta.primary_key == movie_id)
if not movie:
return JSONResponse({}, status_code=404)

for key, value in task_model.dict().items():
setattr(task, key, value)
for key, value in movie_model.dict().items():
setattr(movie, key, value)

await task.save().run()
await movie.save().run()

return TaskModelOut(**task.to_dict())
return MovieModelOut(**movie.to_dict())


@private_app.delete("/tasks/{task_id}/")
async def delete_task(task_id: int):
task = (
await Task.objects().where(Task._meta.primary_key == task_id).first()
@private_app.delete("/movies/{movie_id}/")
async def delete_movie(movie_id: int):
movie = (
await Movie.objects()
.where(Movie._meta.primary_key == movie_id)
.first()
)
if not task:
if not movie:
return JSONResponse({}, status_code=404)

await task.remove()
await movie.remove()

return JSONResponse({})

Expand Down

0 comments on commit 1efb862

Please sign in to comment.