Sha256: 3d548936e7c23c2f5d998dd88c0d9e8a32703561968c724ca6838e99b24634aa

Contents?: true

Size: 1.05 KB

Versions: 4

Compression:

Stored size: 1.05 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 }
      end

      def savon_overrides; end

      def config
        Config.config
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
tres_delta-0.1.3 lib/tres_delta/client.rb
tres_delta-0.1.2 lib/tres_delta/client.rb
tres_delta-0.1.1 lib/tres_delta/client.rb
tres_delta-0.1.0 lib/tres_delta/client.rb