main.py
unknown
python
a year ago
5.2 kB
5
Indexable
''' Add to `main.py` Summary of Changes Added endpoint to approve prices in bulk for a batch. Added endpoint to publish approved prices in bulk for a batch. Added endpoint to manually approve a single price. Added endpoint to manually publish a single approved price. ''' #API to Approve Prices # Approve prices in bulk for a batch @app.patch( "/v1/prices/batch/{job_id}/approve", response_model=List[MenuItemPrice], tags=["pricing"], summary="Approve prices in bulk for a batch", description="This endpoint approves prices in bulk for a specified batch job.", responses={ 200: { "description": "The list of approved menu item prices.", }, 404: { "description": "Job or menu item prices not found." } } ) def approve_prices(job_id: int, user_id: int): existing_job = next((j for j in mock_jobs if j["id"] == job_id), None) if not existing_job: raise HTTPException(status_code=404, detail="Job not found") if not any(u["id"] == user_id for u in mock_users): raise HTTPException(status_code=404, detail="User not found") approved_prices = [] for price in mock_menu_item_prices: if price["job_id"] == job_id: price["approved"] = True price["approved_by"] = user_id price["approved_at"] = datetime.now().isoformat() approved_prices.append(price) if not approved_prices: raise HTTPException(status_code=404, detail="Menu item prices not found") return approved_prices #API to publish prices # Publish approved prices in bulk for a batch @app.patch( "/v1/prices/batch/{job_id}/publish", response_model=List[MenuItemPrice], tags=["pricing"], summary="Publish approved prices in bulk for a batch", description="This endpoint publishes approved prices in bulk for a specified batch job.", responses={ 200: { "description": "The list of published menu item prices.", }, 404: { "description": "Job or menu item prices not found." } } ) def publish_prices(job_id: int, user_id: int): existing_job = next((j for j in mock_jobs if j["id"] == job_id), None) if not existing_job: raise HTTPException(status_code=404, detail="Job not found") if not any(u["id"] == user_id for u in mock_users): raise HTTPException(status_code=404, detail="User not found") published_prices = [] for price in mock_menu_item_prices: if price["job_id"] == job_id and price["approved"]: price["published"] = True price["published_by"] = user_id price["published_at"] = datetime.now().isoformat() published_prices.append(price) if not published_prices: raise HTTPException(status_code=404, detail="Approved menu item prices not found") return published_prices #API to Manually Approve a Single Price # Approve a single menu item price manually @app.patch( "/v1/prices/{price_id}/approve", response_model=MenuItemPrice, tags=["pricing"], summary="Approve a single menu item price manually", description="This endpoint approves a single menu item price manually.", responses={ 200: { "description": "The approved menu item price.", }, 404: { "description": "Menu item price not found." } } ) def approve_price(price_id: int, user_id: int): existing_price = next((p for p in mock_menu_item_prices if p["id"] == price_id), None) if not existing_price: raise HTTPException(status_code=404, detail="Menu item price not found") if not any(u["id"] == user_id for u in mock_users): raise HTTPException(status_code=404, detail="User not found") existing_price["approved"] = True existing_price["approved_by"] = user_id existing_price["approved_at"] = datetime.now().isoformat() return existing_price #API to Manually Publish a Single Price # Publish a single approved menu item price manually @app.patch( "/v1/prices/{price_id}/publish", response_model=MenuItemPrice, tags=["pricing"], summary="Publish a single approved menu item price manually", description="This endpoint publishes a single approved menu item price manually.", responses={ 200: { "description": "The published menu item price.", }, 404: { "description": "Menu item price not found or not approved." } } ) def publish_price(price_id: int, user_id: int): existing_price = next((p for p in mock_menu_item_prices if p["id"] == price_id), None) if not existing_price: raise HTTPException(status_code=404, detail="Menu item price not found") if not existing_price["approved"]: raise HTTPException(status_code=400, detail="Menu item price is not approved") if not any(u["id"] == user_id for u in mock_users): raise HTTPException(status_code=404, detail="User not found") existing_price["published"] = True existing_price["published_by"] = user_id existing_price["published_at"] = datetime.now().isoformat() return existing_price
Editor is loading...
Leave a Comment