NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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