"""Logic to unsubmit products.""" from content_utils.connectors.graphql import LambdaGraphQLConnector from src import config graphql_connector = LambdaGraphQLConnector( graphql_service_name=config.GRAPHQL_SERVICE_NAME, application_name=config.APPLICATION_NAME, logger=config.app_logger, environment=config.ENVIRONMENT, ) with open('src/logic/unsubmit.graphql') as f: UNSUBMIT_MUTATION = f.read() def unsubmit_products(products): """Unsubmit products.""" results = [] for product in products: if 'hard_delete' in product[1]: # Prevent unsubmitting when the release/vendor/subaccount/project # hasn't replicated to SF yet continue response = unsubmit_product(product[0], product[1]) results.append((*product, response)) return results def unsubmit_product(product_id, reason): """Unsubmit product via gql.""" response = graphql_connector.execute( UNSUBMIT_MUTATION, {'productId': product_id, 'reason': reason} ) if response.get('errors'): return 'error' return 'success'