From d54c41883008f1255174036147a6ec106415fb0c Mon Sep 17 00:00:00 2001 From: Jakub Miazek Date: Sat, 30 Apr 2022 14:54:44 +0200 Subject: [PATCH] add multi stuff POST endpoint --- the_app/api/stuff.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/the_app/api/stuff.py b/the_app/api/stuff.py index 10686db..a79de45 100644 --- a/the_app/api/stuff.py +++ b/the_app/api/stuff.py @@ -1,3 +1,4 @@ +from typing import List from fastapi import APIRouter, Depends, status from sqlalchemy.ext.asyncio import AsyncSession @@ -8,6 +9,19 @@ from the_app.schemas.stuff import StuffResponse, StuffSchema router = APIRouter(prefix="/v1/stuff") +@router.post("/add_many", status_code=status.HTTP_201_CREATED) +async def create_multi_stuff(payload: List[StuffSchema], db_session: AsyncSession = Depends(get_db)): + stuff_instances = [ + Stuff( + name=stuf.name, description=stuf.description + ) + for stuf in payload + ] + db_session.add_all(stuff_instances) + await db_session.commit() + return True + + @router.post("", status_code=status.HTTP_201_CREATED, response_model=StuffResponse) async def create_stuff(payload: StuffSchema, db_session: AsyncSession = Depends(get_db)): stuff = Stuff(name=payload.name, description=payload.description)