class Ingenico::Direct::SDK::Client

Ingenico ePayments platform client.

This client and all its child clients are bound to one specific value for the X-GCS-ClientMetaInfo header.

To get a new client with a different header value, use with_client_meta_info.

Thread safe.

Public Class Methods

API_VERSION() click to toggle source

@return [String]

# File lib/ingenico/direct/sdk/client.rb, line 25
def self.API_VERSION
  'v2'
end
new(communicator, client_meta_info = nil) click to toggle source

@param communicator [Ingenico::Direct::SDK::Communicator] @param client_meta_info [String, nil]

Calls superclass method Ingenico::Direct::SDK::ApiResource::new
# File lib/ingenico/direct/sdk/client.rb, line 31
def initialize(communicator, client_meta_info = nil)
  super(communicator, nil, client_meta_info)
end

Public Instance Methods

close() click to toggle source

Releases any system resources associated with this object.

# File lib/ingenico/direct/sdk/client.rb, line 70
def close
  @communicator.close
end
close_expired_connections() click to toggle source

Utility method that delegates the call to this client's communicator.

# File lib/ingenico/direct/sdk/client.rb, line 54
def close_expired_connections
  @communicator.close_expired_connections
end
close_idle_connections(idle_time) click to toggle source

Utility method that delegates the call to this client's communicator.

# File lib/ingenico/direct/sdk/client.rb, line 49
def close_idle_connections(idle_time)
  @communicator.close_idle_connections(idle_time)
end
disable_logging() click to toggle source

Turns off logging.

# File lib/ingenico/direct/sdk/client.rb, line 65
def disable_logging
  @communicator.disable_logging
end
enable_logging(communicator_logger) click to toggle source

Turns on logging using the given communicator logger. @param communicator_logger [Ingenico::Direct::SDK::Logging::CommunicatorLogger]

# File lib/ingenico/direct/sdk/client.rb, line 60
def enable_logging(communicator_logger)
  @communicator.enable_logging(communicator_logger)
end
merchant(merchant_id) click to toggle source

Resource /v2/!{merchantId} @param merchant_id [String] @return [Ingenico::Direct::SDK::Merchant::MerchantClient]

# File lib/ingenico/direct/sdk/client.rb, line 77
def merchant(merchant_id)
  Ingenico::Direct::SDK::Merchant::MerchantClient.new(self, {
    'merchantId'.freeze => merchant_id
  })
end
with_client_meta_info(client_meta_info) click to toggle source

@param client_meta_info [String, nil] JSON string containing the meta data for the client @return [Ingenico::Direct::SDK::Client] a Client which uses the passed meta data for the X-GCS-ClientMetaInfo header. @raise [Ingenico::Direct::SDK::MarshallerSyntaxException] if the given clientMetaInfo is not a valid JSON string

# File lib/ingenico/direct/sdk/client.rb, line 38
def with_client_meta_info(client_meta_info)
  if client_meta_info
    # Checking to see if this is valid JSON (no JSON parse exceptions)
    @communicator.marshaller.unmarshal(client_meta_info, DataObject)
    client_meta_info = Base64.strict_encode64(client_meta_info)
    return @client_meta_info == client_meta_info ? self : Client.new(@communicator, client_meta_info)
  end
  @client_meta_info ? Client.new(@communicator) : self
end