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