Implement Bulk Create Endpoint for Inventory Items
Overview
Add a new endpoint to support bulk creation of snacks in the inventory system. This will improve efficiency when adding multiple items and reduce the number of API calls needed.
Current State
- Currently, snacks can only be created one at a time using POST
/api/v1/inventory/snacks
- Each creation requires a separate API call
Objectives
- Create new bulk creation endpoint
- Add validation for bulk requests
- Return results with processed items or error
Technical Details
New Endpoint
POST /api/v1/inventory/snacks/bulk
Request Schema
class BulkSnackCreate(BaseModel):
items: list[SnackCreateSchema]
Response Schema
class BulkCreateResponse(BaseModel):
success: bool
items: Optional[list[Snack]] = None
error: Optional[str] = None
Example Request
{
"items": [
{
"sku": "CHIPS001",
"quantity": 50
},
{
"sku": "SODA002",
"quantity": 100
}
]
}
Example Success Response
{
"success": true,
"items": [
{
"sku": "CHIPS001",
"quantity": 50
},
{
"sku": "SODA002",
"quantity": 100
}
],
"error": null
}
Example Error Response
{
"success": false,
"items": null,
"error": "Error processing bulk request: Duplicate SKU found"
}
Implementation Tasks
1. Database Updates
- Create bulk processing function in db.py
2. API Implementation
- Create new router endpoint
- Implement request validation
- Add error handling
- Add response formatting
Code Examples
Router Implementation
@router.post("/snacks/bulk", response_model=BulkCreateResponse)
async def create_snacks_bulk(request: BulkSnackCreate):
try:
# Pass all items to a single processing function
# create_bulk_items() can be defined in db.py
processed_items = create_bulk_items(request.items)
return BulkCreateResponse(
success=True,
items=processed_items,
error=None
)
except Exception as e:
return BulkCreateResponse(
success=False,
items=None,
error=f"Error processing bulk request: {str(e)}"
)
Resources
Implement Bulk Create Endpoint for Inventory Items
Overview
Add a new endpoint to support bulk creation of snacks in the inventory system. This will improve efficiency when adding multiple items and reduce the number of API calls needed.
Current State
/api/v1/inventory/snacksObjectives
Technical Details
New Endpoint
Request Schema
Response Schema
Example Request
{ "items": [ { "sku": "CHIPS001", "quantity": 50 }, { "sku": "SODA002", "quantity": 100 } ] }Example Success Response
{ "success": true, "items": [ { "sku": "CHIPS001", "quantity": 50 }, { "sku": "SODA002", "quantity": 100 } ], "error": null }Example Error Response
{ "success": false, "items": null, "error": "Error processing bulk request: Duplicate SKU found" }Implementation Tasks
1. Database Updates
2. API Implementation
Code Examples
Router Implementation
Resources