Skip to content

Isolate pass service errors & potentially log and discard invalid proposal info #71

@padraic-shafer

Description

@padraic-shafer

Consider breaking up the try-catch blocks here (and similar uses elsewhere) to:

  1. Isolate the source of an error
  2. Possibly log and then discard invalid proposal types

try:
pass_proposal_types_list = await _call_pass_webservice(url)
proposal_types = []
if pass_proposal_types_list and len(pass_proposal_types_list) > 0:
for proposal_type in pass_proposal_types_list:
proposal_types.append(PassProposalType(**proposal_type))
except ValidationError as error:
error_message = f"Error validating data recevied from PASS for proposal type for the {facility} facility."
logger.error(error_message)
raise PassException(error_message) from error
except Exception as error:
error_message = "Error retrieving proposal types from PASS."
logger.exception(error_message)
raise PassException(error_message) from error

For example:

 try: 
     pass_proposal_types_list = await _call_pass_webservice(url) 
 except Exception as error: 
     error_message = "Error retrieving proposal types from PASS." 
     logger.exception(error_message) 
     raise PassException(error_message) from error 

proposal_types = [] 
if pass_proposal_types_list and len(pass_proposal_types_list) > 0: 
    for proposal_type in pass_proposal_types_list: 
        try: 
            proposal_types.append(PassProposalType(**proposal_type)) 
        except ValidationError as error: 
            error_message = f"Error validating data recevied from PASS for proposal type for the {facility} facility." 
            logger.error(error_message) 
            # raise PassException(error_message) from error 

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions