class Arbetsformedlingen::API::SOAPRequest

API SOAP request

Attributes

locale[R]

SOAP response Response = KeyStruct.new(:code, :body, :xml)

uri[R]

SOAP response Response = KeyStruct.new(:code, :body, :xml)

url[R]

SOAP response Response = KeyStruct.new(:code, :body, :xml)

Public Class Methods

new(url, locale: nil) click to toggle source

Initialize SOAP request

# File lib/arbetsformedlingen/api/soap_request.rb, line 22
def initialize(url, locale: nil)
  unless Object.const_defined?(:Nokogiri)
    raise(ArgumentError, "unable to require 'nokogiri' gem, please install it")
  end

  @url = url
  @uri = URI(url)
  @locale = locale
end

Public Instance Methods

post(body) click to toggle source

Performs a POST request @param [String] body @return [Response] the response

# File lib/arbetsformedlingen/api/soap_request.rb, line 35
def post(body)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true if uri.scheme == 'https'

  request = Net::HTTP::Post.new(uri)
  request['Content-Type'] = 'text/xml'
  request['Accept-Language'] = locale if locale
  request.body = body

  response = http.request(request)

  Response.new(response, uri)
end