Sha256: 3680613e595a4c81712fb669fc7bb1e58653b49a7feca7a0dedd8ac1afb36705

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: :SSLv3, 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.1 lib/tres_delta/client.rb