Sha256: 03f32ab758138d57b9ba6ad268aafa2192a1e248446aa994c2a75bab011467ea

Contents?: true

Size: 1.07 KB

Versions: 3

Compression:

Stored size: 1.07 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_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

3 entries across 3 versions & 1 rubygems

Version Path
tres_delta-0.2.0 lib/tres_delta/client.rb
tres_delta-0.1.5 lib/tres_delta/client.rb
tres_delta-0.1.4.2 lib/tres_delta/client.rb