Skip to content

Commit

Permalink
LITE-28676 Refactoring. Make the order of functions more logical
Browse files Browse the repository at this point in the history
  • Loading branch information
Hairash committed Oct 5, 2023
1 parent 39e12d4 commit d3cbada
Showing 1 changed file with 64 additions and 64 deletions.
128 changes: 64 additions & 64 deletions connect_ext_ppr/tasks_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,29 @@ def _check_cbc_task_status(cbc_service, tracking_id):
raise TaskException(f'Something went wrong with task: {tracking_id}')


def check_and_update_product(deployment_request, cbc_service, **kwargs):
if not deployment_request.manually:

product_id = deployment_request.deployment.product_id

response = _execute_with_retries(
cbc_service.get_product_details, func_kwargs={'product_id': product_id},
)

if 'error' in response.keys():
raise Exception(response['error'])

if response.get('isUpdateAvailable'):
response = _execute_with_retries(
cbc_service.update_product, func_kwargs={'product_id': product_id},
)

if 'error' in response.keys():
raise Exception(response['error'])

return True


def prepare_ppr_file_for_task(
connect_client,
file_data,
Expand Down Expand Up @@ -168,29 +191,6 @@ def prepare_ppr_file_for_task(
raise TaskException(f'Error while connecting to Connect: {e.message}')


def check_and_update_product(deployment_request, cbc_service, **kwargs):
if not deployment_request.manually:

product_id = deployment_request.deployment.product_id

response = _execute_with_retries(
cbc_service.get_product_details, func_kwargs={'product_id': product_id},
)

if 'error' in response.keys():
raise Exception(response['error'])

if response.get('isUpdateAvailable'):
response = _execute_with_retries(
cbc_service.update_product, func_kwargs={'product_id': product_id},
)

if 'error' in response.keys():
raise Exception(response['error'])

return True


def apply_ppr_and_delegate_to_marketplaces(
deployment_request,
cbc_service,
Expand Down Expand Up @@ -278,6 +278,47 @@ def apply_ppr_and_delegate_to_marketplaces(
return True


def delegate_to_l2(deployment_request, cbc_service, connect_client, logger, **kwargs):
"""Task delegates PPR to L2 in Commerce
:param deployment_request: DeploymentRequest model
:param cbc_service: CBC service
:param connect_client: Connect client
:param logger: logger
:rtype bool
:raises TaskException
"""
if deployment_request.manually:
return True

ppr_file_id = deployment_request.ppr.file
deployment = deployment_request.deployment
try:
file_data = get_ppr_from_media(
connect_client,
deployment.account_id,
deployment.id,
ppr_file_id,
)
except ClientError as e:
raise TaskException(f'Error while connecting to Connect: {e.message}')

file = prepare_ppr_file_for_task(
connect_client=connect_client,
file_data=file_data,
file_name_template=PPR_FILE_NAME_DELEGATION_L2,
deployment_request=deployment_request,
deployment=deployment,
process_func=process_ppr_file_for_delelegate_l2,
)

tracking_id = _send_ppr(cbc_service, file)
logger.debug(f'delegate_to_l2 dr_id: {deployment_request.id}, tracking_id: {tracking_id}')
file.close()
_check_cbc_task_status(cbc_service, tracking_id)
return True


def apply_pricelist_task(
deployment_request,
cbc_service,
Expand Down Expand Up @@ -354,47 +395,6 @@ def validate_pricelists_task(
return True


def delegate_to_l2(deployment_request, cbc_service, connect_client, logger, **kwargs):
"""Task delegates PPR to L2 in Commerce
:param deployment_request: DeploymentRequest model
:param cbc_service: CBC service
:param connect_client: Connect client
:param logger: logger
:rtype bool
:raises TaskException
"""
if deployment_request.manually:
return True

ppr_file_id = deployment_request.ppr.file
deployment = deployment_request.deployment
try:
file_data = get_ppr_from_media(
connect_client,
deployment.account_id,
deployment.id,
ppr_file_id,
)
except ClientError as e:
raise TaskException(f'Error while connecting to Connect: {e.message}')

file = prepare_ppr_file_for_task(
connect_client=connect_client,
file_data=file_data,
file_name_template=PPR_FILE_NAME_DELEGATION_L2,
deployment_request=deployment_request,
deployment=deployment,
process_func=process_ppr_file_for_delelegate_l2,
)

tracking_id = _send_ppr(cbc_service, file)
logger.debug(f'delegate_to_l2 dr_id: {deployment_request.id}, tracking_id: {tracking_id}')
file.close()
_check_cbc_task_status(cbc_service, tracking_id)
return True


TASK_PER_TYPE = {
TaskTypesChoices.product_setup: check_and_update_product,
TaskTypesChoices.apply_and_delegate: apply_ppr_and_delegate_to_marketplaces,
Expand Down

0 comments on commit d3cbada

Please sign in to comment.