Sha256: dde6964a3b667573207ce8a2fa45ca3c6b1b22c40f5161e05e692d5c2b2a6f70

Contents?: true

Size: 1.17 KB

Versions: 1

Compression:

Stored size: 1.17 KB

Contents

require 'net/https'
require 'uri'

module Maxipago
  module RequestBuilder
    class Request
      def def initialize(maxipagoId, apiKey)
        @maxipagoId = maxipagoId
        @apiKey = apiKey
        @apiVersion = Maxipago::Client::APIVERSION
        @header = {"Content-Type" => 'text/xml'}
      end

      def send_command(opts)
        xml = build_xml(opts)
        send_request(xml)
      end

      private

      def send_request(xml)
        set_uri
        set_http_session

        @http_session.start {|http|
          repsonse = http.post(@uri.path, xml, @header)
          {header: response, body: response.body, message: response.message}
        }
      end

      def set_uri
        raise "This is an abstract method"
      end

      def buid_xml(opts)
        raise "This is an abstract method"
      end
      
      def set_http_session
        @http_session = Net::HTTP.new(@uri.host, @uri.port)
        @http_session.use_ssl = true if @uri.scheme == "https"
        set_ssl_mode if @http_session.use_ssl?
      end

      def set_ssl_mode
        @http_session.verify_mode = OpenSSL::SSL::VERIFY_NONE
        @http_session.ssl_timeout = 30
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
maxipago-0.1.3 lib/maxipago/request_builder/request.rb