Sha256: 86a89f9297920484d07aea12e9fd315489b6a3efa1203cbba72a2478608c89c7

Contents?: true

Size: 793 Bytes

Versions: 4

Compression:

Stored size: 793 Bytes

Contents

require 'httparty'

module SoapyBing
  module Soap
    module Request
      class Base
        include Helpers::ClassName

        DEFAULT_HTTP_HEADERS = {
          'Content-Type' => 'text/xml;charset=UTF-8'
        }.freeze

        attr_reader :context

        def initialize(context:)
          @context = context
        end

        def post(url, body: default_body, headers: default_headers)
          HTTParty.post(url, body: body, headers: headers)
        end

        def default_body
          TemplateRenderer.new(context).render(action_name.underscore)
        end

        def default_headers
          DEFAULT_HTTP_HEADERS.merge('SOAPAction' => action_name)
        end

        def action_name
          class_name.sub(/Request$/, '')
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
soapy_bing-0.0.4 lib/soapy_bing/soap/request/base.rb
soapy_bing-0.0.3 lib/soapy_bing/soap/request/base.rb
soapy_bing-0.0.2 lib/soapy_bing/soap/request/base.rb
soapy_bing-0.0.1 lib/soapy_bing/soap/request/base.rb