From 512239d6b991fa01440cb61ac7c17f033812ae97 Mon Sep 17 00:00:00 2001 From: Parish Wolfe Date: Fri, 6 Dec 2024 19:23:24 -0500 Subject: [PATCH] Publish Flag --- app/endpoints/products.py | 17 +++++++++++++---- app/res/models/requests.py | 7 ++++++- app/services/pattern_services.py | 7 ++++--- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/app/endpoints/products.py b/app/endpoints/products.py index 10007da..b90872f 100644 --- a/app/endpoints/products.py +++ b/app/endpoints/products.py @@ -14,7 +14,11 @@ ) from database.firebase import get_firestore_db from res.models.objects import TshirtWithIds, QueueItem -from res.models.requests import PatternRequest, PatternQueueRequest +from res.models.requests import ( + PatternRequest, + PatternQueuePostRequest, + PatternQueueGetRequest +) from res.models.responses import PatternResponse from middleware.security import verify_api_key @@ -30,7 +34,10 @@ def process_patterns( ): """This endpoint creates the patterns with ideas provided by the user.""" patterns = process_patterns_and_idea( - request.patterns, request.idea) + request.patterns, + request.idea, + request.publish + ) response_patterns = [] for pattern in patterns: @@ -52,7 +59,7 @@ def correct_taxonomy(): @router.post("/pattern_queue") def add_patterns_to_queue( - request: PatternQueueRequest, + request: PatternQueuePostRequest, api_key: str = Depends(verify_api_key), firestore_db=Depends(get_firestore_db) ): @@ -72,6 +79,7 @@ def add_patterns_to_queue( @router.get("/pattern_queue") def process_pattern_queue( + request: PatternQueueGetRequest, api_key: str = Depends(verify_api_key), firestore_db=Depends(get_firestore_db) ): @@ -88,7 +96,8 @@ def process_pattern_queue( return process_patterns( PatternRequest( patterns=pattern_to_be.patterns, - idea=pattern_to_be.idea + idea=pattern_to_be.idea, + publish=request.publish ), api_key=api_key, firestore_db=firestore_db diff --git a/app/res/models/requests.py b/app/res/models/requests.py index 89765b6..7e92f98 100644 --- a/app/res/models/requests.py +++ b/app/res/models/requests.py @@ -8,7 +8,12 @@ class PatternRequest(BaseModel): patterns: Optional[int] = 3 idea: str + publish: Optional[bool] = False -class PatternQueueRequest(BaseModel): +class PatternQueuePostRequest(BaseModel): queue: list[ProductQueue] + + +class PatternQueueGetRequest(BaseModel): + publish: Optional[bool] = False diff --git a/app/services/pattern_services.py b/app/services/pattern_services.py index a1e63c1..c166d01 100644 --- a/app/services/pattern_services.py +++ b/app/services/pattern_services.py @@ -15,7 +15,7 @@ # Function to process patterns and idea -def process_patterns_and_idea(number_of_patterns, idea): +def process_patterns_and_idea(number_of_patterns: int, idea: str, publish: bool): text_colors = [ {"hex": "000000", "shade": "dark"}, {"hex": "FFFFFF", "shade": "light"} @@ -130,7 +130,8 @@ def process_patterns_and_idea(number_of_patterns, idea): # Remove all images except the front image printify.only_front_product_images_by_product_id(product) - # Publish the product - printify.publish_product(product) + # Publish the product if the publish flag is set + if publish: + printify.publish_product(product) return patterns