class NmiDirectPost::Base

Constants

AUTH_PARAMS
GET_URI
NO_CONNECTION
POST_URI

Attributes

response[R]
response_code[R]
response_text[R]

Public Class Methods

establish_connection(username, password) click to toggle source
# File lib/nmi_direct_post/base.rb, line 50
def establish_connection(username, password)
  @username, @password = username, password
end
generate_query_string(attributes, target = self) click to toggle source
# File lib/nmi_direct_post/base.rb, line 62
def generate_query_string(attributes, target = self)
  ((attributes.reject { |attr| target.__send__(attr).blank? }).collect { |attr| "#{attr}=#{Addressable::URI.escape(target.__send__(attr).to_s)}"}).join('&')
end
get(query) click to toggle source
# File lib/nmi_direct_post/base.rb, line 66
def get(query)
  uri = [GET_URI, query].join('?')
  data = get_http_response(uri).body
  Hash.from_xml(data)["nm_response"]
end
new(attributes) click to toggle source
# File lib/nmi_direct_post/base.rb, line 31
def initialize(attributes)
  @username = attributes[:username] || attributes["username"] || self.class.username
  @password = attributes[:password] || attributes["password"] || self.class.password
end
password() click to toggle source
# File lib/nmi_direct_post/base.rb, line 58
def password
  @password || (in_base? ? raise_no_connection_error : superclass.password).tap { |_| raise_no_connection_error if _.blank? }
end
post(query) click to toggle source
# File lib/nmi_direct_post/base.rb, line 72
def post(query)
  uri = [POST_URI, query].join('?')
  data = get_http_response(uri)
  Addressable::URI.parse([POST_URI, data.body].join('?')).query_values
end
username() click to toggle source
# File lib/nmi_direct_post/base.rb, line 54
def username
  @username || (in_base? ? raise_no_connection_error : superclass.username).tap { |_| raise_no_connection_error if _.blank? }
end

Protected Class Methods

get_http_response(uri) click to toggle source
# File lib/nmi_direct_post/base.rb, line 79
def get_http_response(uri)
  request = Net::HTTP::Get.new(uri)
  url = URI.parse(uri)
  http = Net::HTTP.new(url.host, url.port)
  http.use_ssl = true
  http.ssl_version = :TLSv1_2
  http.verify_mode = OpenSSL::SSL::VERIFY_PEER
  http.request(request)
end
in_base?() click to toggle source
# File lib/nmi_direct_post/base.rb, line 89
def in_base?
  'Object' == superclass.name
end
raise_no_connection_error() click to toggle source
# File lib/nmi_direct_post/base.rb, line 93
def raise_no_connection_error
  raise(StandardError, NO_CONNECTION)
end

Public Instance Methods

logger() click to toggle source
# File lib/nmi_direct_post/base.rb, line 44
def logger
  NmiDirectPost.logger
end
persisted?() click to toggle source
# File lib/nmi_direct_post/base.rb, line 36
def persisted?
  false
end
success?() click to toggle source
# File lib/nmi_direct_post/base.rb, line 40
def success?
  1 == self.response
end

Protected Instance Methods

generate_query_string(attributes) click to toggle source
# File lib/nmi_direct_post/base.rb, line 99
def generate_query_string(attributes)
  self.class.generate_query_string(attributes, self)
end