class Ingenico::Connect::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/connect/sdk/client.rb, line 26
def self.API_VERSION
  'v1'
end
new(communicator, client_meta_info=nil) click to toggle source

@param communicator [Ingenico::Connect::SDK::Communicator] @param client_meta_info [String]

# File lib/ingenico/connect/sdk/client.rb, line 32
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/connect/sdk/client.rb, line 78
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/connect/sdk/client.rb, line 62
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/connect/sdk/client.rb, line 57
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/connect/sdk/client.rb, line 73
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::Connect::SDK::Logging::CommunicatorLogger]

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

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

# File lib/ingenico/connect/sdk/client.rb, line 85
def merchant(merchant_id)
  Ingenico::Connect::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] JSON string containing the meta data for the client @return [Ingenico::Connect::SDK::Client] a Client which uses the passed meta data for the X-GCS-ClientMetaInfo header. @raise [Ingenico::Connect::SDK::MarshallerSyntaxException] if the given clientMetaInfo is not a valid JSON string

# File lib/ingenico/connect/sdk/client.rb, line 39
def with_client_meta_info(client_meta_info)
  if @client_meta_info.nil? && client_meta_info.nil?
    self
  elsif client_meta_info.nil?
    return Client.new(@communicator, nil)
  else
    # 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)
    if @client_meta_info == client_meta_info
      self
    else
      return Client.new(@communicator, client_meta_info)
    end
  end
end