contribution_methods_messenger.py (2546B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\campaigns\client\v1\messengers\contribution_methods_messenger.py 2 import logging 3 from campaigns.client.v1.data_model.contribution_method import ContributionMethodDefinition 4 from campaigns.client.errors import ContributionMethodNotFoundError, ContributionMethodBadRequestError, ContributionMethodRequestError 5 from eveProto.generated.eve_public.campaign.contributionmethod.definition.api.requests_pb2 import GetAllRequest, GetAllResponse 6 from six.moves.http_client import NOT_FOUND, BAD_REQUEST, OK 7 from semantic_version import SemanticVersion 8 from stackless_response_router.exceptions import TimeoutException, UnpackException 9 logger = logging.getLogger('campaigns') 10 11 class CampaignContributionMethodsMessenger(object): 12 13 def __init__(self, public_gateway): 14 self.public_gateway = public_gateway 15 16 def override_gateway(self, public_gateway): 17 self.public_gateway = public_gateway 18 19 def get_all_request(self, semantic_version): 20 request = GetAllRequest(version=semantic_version.to_eve_public_proto()) 21 info_log = 'Request: CampaignContributionMethodsMessenger: GetAllRequest: {request}\n'.format(request=request) 22 try: 23 response_primitive, response = self.public_gateway.send_blocking_character_request_and_receive_response(request_payload=request, expected_response_class=GetAllResponse, timeout_seconds=4, max_attempts=2, retry_delay_in_seconds=1) 24 except (TimeoutException, UnpackException) as exc: 25 info_log += 'ERROR: %s' % exc.__class__.__name__ 26 logger.info(info_log) 27 raise ContributionMethodRequestError('Failed to receive response from GetAllRequest: %s' % exc) 28 29 status_code = response_primitive.status_code 30 if status_code == NOT_FOUND: 31 raise ContributionMethodNotFoundError('Could not find requested version in GetAllRequest: %s' % semantic_version) 32 if status_code == BAD_REQUEST: 33 raise ContributionMethodBadRequestError('Bad request in GetAllRequest: %s' % semantic_version) 34 if status_code != OK: 35 raise ContributionMethodRequestError('Received error status code for GetAllResponse: %s' % status_code) 36 info_log += 'Response: CampaignContributionMethodsMessenger: GetAllResponse: {response}'.format(response=response) 37 logger.info(info_log) 38 results = [ ContributionMethodDefinition.from_proto(definition) for definition in response.definitions ] 39 return results