"""SFN Utils.""" from datetime import datetime, timezone from product_review import config from product_review.connectors import sfn as sfn_connector from product_review.models import ows_product as ows_product_model from product_review.models.splitio import is_enabled_complete_review_v2 def create_complete_review_sfn_execution( item, resolution, user_uuid, note=None, will_not_deliver=False ): product = ows_product_model.get_product(item.product_id) vendor_id = product["vendor_id"] """Start the complete_review state machine.""" created_datetime = datetime.now(timezone.utc) is_complete_review_v2_enabled = is_enabled_complete_review_v2(vendor_id) status, _ = sfn_connector.trigger_sfn( ( config.SFN_COMPLETE_REVIEW_V2_ARN if is_complete_review_v2_enabled else config.SFN_COMPLETE_REVIEW_ARN ), f"complete-review-{item.review_queue_id}", { "review_queue_id": item.review_queue_id, "product_id": item.product_id, "resolution": resolution, "user_uuid": user_uuid, "created_datetime": created_datetime.isoformat(timespec="microseconds"), "note": note, "will_not_deliver": will_not_deliver, }, ) return status