Class: EasyPost::Client
- Inherits:
 - 
      Object
      
        
- Object
 - EasyPost::Client
 
 
- Defined in:
 - lib/easypost/client.rb
 
Constant Summary collapse
- SERVICE_CLASSES =
 [ EasyPost::Services::Address, EasyPost::Services::ApiKey, EasyPost::Services::Batch, EasyPost::Services::BetaRate, EasyPost::Services::BetaReferralCustomer, EasyPost::Services::Billing, EasyPost::Services::CarrierAccount, EasyPost::Services::CarrierMetadata, EasyPost::Services::CarrierType, EasyPost::Services::Claim, EasyPost::Services::CustomsInfo, EasyPost::Services::CustomsItem, EasyPost::Services::EndShipper, EasyPost::Services::Event, EasyPost::Services::Insurance, EasyPost::Services::Order, EasyPost::Services::Parcel, EasyPost::Services::Pickup, EasyPost::Services::Rate, EasyPost::Services::ReferralCustomer, EasyPost::Services::Refund, EasyPost::Services::Report, EasyPost::Services::ScanForm, EasyPost::Services::Shipment, EasyPost::Services::SmartRate, EasyPost::Services::Tracker, EasyPost::Services::User, EasyPost::Services::Webhook, ].freeze
Instance Attribute Summary collapse
- 
  
    
      #api_base  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute api_base.
 - 
  
    
      #open_timeout  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute open_timeout.
 - 
  
    
      #read_timeout  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute read_timeout.
 
Instance Method Summary collapse
- 
  
    
      #initialize(api_key:, read_timeout: 60, open_timeout: 30, api_base: 'https://api.easypost.com', custom_client_exec: nil)  ⇒ EasyPost::Client 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
Initialize a new Client object.
 - 
  
    
      #make_request(method, endpoint, params = nil, api_version = EasyPost::InternalUtilities::Constants::API_VERSION)  ⇒ Hash 
    
    
  
  
  
  
  
  
  
  
  
    
Make an HTTP request.
 - 
  
    
      #subscribe_request_hook(name = SecureRandom.hex.to_sym, &block)  ⇒ Symbol 
    
    
  
  
  
  
  
  
  
  
  
    
Subscribe a request hook.
 - 
  
    
      #subscribe_response_hook(name = SecureRandom.hex.to_sym, &block)  ⇒ Symbol 
    
    
  
  
  
  
  
  
  
  
  
    
Subscribe a response hook.
 - 
  
    
      #unsubscribe_all_request_hooks  ⇒ Hash 
    
    
  
  
  
  
  
  
  
  
  
    
Unsubscribe all request hooks.
 - 
  
    
      #unsubscribe_all_response_hooks  ⇒ Hash 
    
    
  
  
  
  
  
  
  
  
  
    
Unsubscribe all response hooks.
 - 
  
    
      #unsubscribe_request_hook(name)  ⇒ Block 
    
    
  
  
  
  
  
  
  
  
  
    
Unsubscribe a request hook.
 - 
  
    
      #unsubscribe_response_hook(name)  ⇒ Block 
    
    
  
  
  
  
  
  
  
  
  
    
Unsubscribe a response hook.
 
Constructor Details
#initialize(api_key:, read_timeout: 60, open_timeout: 30, api_base: 'https://api.easypost.com', custom_client_exec: nil) ⇒ EasyPost::Client
Initialize a new Client object
      19 20 21 22 23 24 25 26 27 28 29 30 31 32 33  | 
    
      # File 'lib/easypost/client.rb', line 19 def initialize(api_key:, read_timeout: 60, open_timeout: 30, api_base: 'https://api.easypost.com', custom_client_exec: nil) raise EasyPost::Errors::MissingParameterError.new('api_key') if api_key.nil? @api_key = api_key @api_base = api_base @api_version = 'v2' @read_timeout = read_timeout @open_timeout = open_timeout @lib_version = File.open(File.('../../VERSION', __dir__)).read.strip # Make an HTTP client once, reuse it for all requests made by this client # Configuration is immutable, so this is safe @http_client = EasyPost::HttpClient.new(api_base, http_config, custom_client_exec) end  | 
  
Instance Attribute Details
#api_base ⇒ Object (readonly)
Returns the value of attribute api_base.
      10 11 12  | 
    
      # File 'lib/easypost/client.rb', line 10 def api_base @api_base end  | 
  
#open_timeout ⇒ Object (readonly)
Returns the value of attribute open_timeout.
      10 11 12  | 
    
      # File 'lib/easypost/client.rb', line 10 def open_timeout @open_timeout end  | 
  
#read_timeout ⇒ Object (readonly)
Returns the value of attribute read_timeout.
      10 11 12  | 
    
      # File 'lib/easypost/client.rb', line 10 def read_timeout @read_timeout end  | 
  
Instance Method Details
#make_request(method, endpoint, params = nil, api_version = EasyPost::InternalUtilities::Constants::API_VERSION) ⇒ Hash
Make an HTTP request
      81 82 83 84 85 86 87 88 89 90 91 92 93  | 
    
      # File 'lib/easypost/client.rb', line 81 def make_request( method, endpoint, params = nil, api_version = EasyPost::InternalUtilities::Constants::API_VERSION ) response = @http_client.request(method, endpoint, nil, params, api_version) potential_error = EasyPost::Errors::ApiError.handle_api_error(response) raise potential_error unless potential_error.nil? EasyPost::InternalUtilities::Json.parse_json(response.body) end  | 
  
#subscribe_request_hook(name = SecureRandom.hex.to_sym, &block) ⇒ Symbol
Subscribe a request hook
      100 101 102  | 
    
      # File 'lib/easypost/client.rb', line 100 def subscribe_request_hook(name = SecureRandom.hex.to_sym, &block) EasyPost::Hooks.subscribe(:request, name, block) end  | 
  
#subscribe_response_hook(name = SecureRandom.hex.to_sym, &block) ⇒ Symbol
Subscribe a response hook
      124 125 126  | 
    
      # File 'lib/easypost/client.rb', line 124 def subscribe_response_hook(name = SecureRandom.hex.to_sym, &block) EasyPost::Hooks.subscribe(:response, name, block) end  | 
  
#unsubscribe_all_request_hooks ⇒ Hash
Unsubscribe all request hooks
      115 116 117  | 
    
      # File 'lib/easypost/client.rb', line 115 def unsubscribe_all_request_hooks EasyPost::Hooks.unsubscribe_all(:request) end  | 
  
#unsubscribe_all_response_hooks ⇒ Hash
Unsubscribe all response hooks
      139 140 141  | 
    
      # File 'lib/easypost/client.rb', line 139 def unsubscribe_all_response_hooks EasyPost::Hooks.unsubscribe_all(:response) end  | 
  
#unsubscribe_request_hook(name) ⇒ Block
Unsubscribe a request hook
      108 109 110  | 
    
      # File 'lib/easypost/client.rb', line 108 def unsubscribe_request_hook(name) EasyPost::Hooks.unsubscribe(:request, name) end  | 
  
#unsubscribe_response_hook(name) ⇒ Block
Unsubscribe a response hook
      132 133 134  | 
    
      # File 'lib/easypost/client.rb', line 132 def unsubscribe_response_hook(name) EasyPost::Hooks.unsubscribe(:response, name) end  |