class Nordea::Siirto::Protocols::NetHttp

Implements communication with Nordea server using Ruby's standard net/http library

Private Instance Methods

create_request(siirto_request) click to toggle source

Creates protocol-specific request from generic Siirto request @param [Nordea::Siirto::Request] @return [Net::HTTPRequest]

# File lib/nordea/siirto/protocols/net_http.rb, line 13
def create_request(siirto_request)
  # Extract data
  klass = "Net::HTTP::#{siirto_request.method.capitalize}".constantize
  uri = siirto_request.uri.request_uri
  body = siirto_request.body
  headers = siirto_request.headers

  # Create new Request object
  request = klass.new(uri)
  headers.each do |header, value|
    request[header] = value
  end
  request.body = body if body.present?
  request
end
parse_response(http_response) click to toggle source

Parses NET::HTTPResponse into a generic Siirto response @param [Net::HTTPResponse] @return [Nordea::Siirto::Response]

# File lib/nordea/siirto/protocols/net_http.rb, line 43
def parse_response(http_response)
  response = Nordea::Siirto::Response.new
  response.code = http_response.code
  response.body = JSON.parse(http_response.body)
  response.message = http_response.message
end
send_request(siirto_request) click to toggle source

Makes the actual request @param [Nordea::Siirto::Request] @return [Net::HTTPRequest]

# File lib/nordea/siirto/protocols/net_http.rb, line 32
def send_request(siirto_request)
  request = create_request(siirto_request)
  uri = siirto_request.uri
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true if uri.port == 443
  http.request(request)
end