class Openfire::Service::Base
Public Class Methods
new(options={})
click to toggle source
# File lib/openfire/service/base.rb, line 9 def initialize(options={}) @options = { path: config.path }.merge(options) end
Private Instance Methods
build_query(params)
click to toggle source
# File lib/openfire/service/base.rb, line 15 def build_query(params) "#{build_query_uri.to_s}?#{build_query_params(params)}" end
build_query_params(params)
click to toggle source
# File lib/openfire/service/base.rb, line 25 def build_query_params(params) params.merge!(:secret => @options[:secret]) params.to_a.map{ |p| "#{p[0]}=#{p[1]}" }.join('&') end
build_query_uri()
click to toggle source
# File lib/openfire/service/base.rb, line 19 def build_query_uri uri = URI.parse(@options[:url]) uri.path = File.join(uri.path,config.path) uri end
parse_response(data)
click to toggle source
# File lib/openfire/service/base.rb, line 44 def parse_response(data) error = data.match(/<error>(.*)<\/error>/) if error && config.exceptions.include?(error[1]) exception_klass = "#{self.class}::#{error[1].gsub('Exception', '')}Exception" raise exception_klass.constantize end raise InvalidResponseException unless data.match(/<result>ok<\/result>/) return true end
submit_http_request(uri, params_as_string)
click to toggle source
# File lib/openfire/service/base.rb, line 35 def submit_http_request(uri, params_as_string) uri.query = URI.encode(params_as_string) res = Net::HTTP.get_response(uri) return res.body rescue Exception => e raise HTTPException, e.to_s end
submit_request(params)
click to toggle source
# File lib/openfire/service/base.rb, line 30 def submit_request(params) data = submit_http_request(build_query_uri, build_query_params(params)) parse_response(data) end