Sha256: c267a10fc27d3b854b5a752e2b7c9ea626e96d0964252e9241548331b1a795ed

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

require 'savon'

module TresDelta
  class Client
    class << self
      attr_accessor :wsdl

      def request(action, soap_body)
        Response.create_from_action(action, client.call(action, message: soap_body))
      end

      def client_credentials
        {
          "ClientCode" => config["client_code"],
          "Password" => config["password"],
          "UserName" => config["user_name"]
        }
      end

      def location_identifier
        {
          'LocationCode' => config["location_code"],
          'MerchantCode' => config["merchant_code"]
        }
      end

      def client
        # TODO: Make this configurable via file. Because right now this ain't secure. -_-
        @client ||= ::Savon.client(savon_options)
      end

      def savon_options
        default_savon_options.merge(savon_overrides || {})
      end

      def default_savon_options
        { wsdl: wsdl, ssl_version: :TLSv1, ssl_verify_mode: :none, log: false, open_timeout: 120, read_timeout: 120 }
      end

      def savon_overrides; end

      def config
        Config.config
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tres_delta-0.1.4.3 lib/tres_delta/client.rb