Sha256: 69e3ef911203da8009fbd7d1d13013e77ec98036f3a5c9d3bac41d5bd4ebd427

Contents?: true

Size: 1.92 KB

Versions: 1

Compression:

Stored size: 1.92 KB

Contents

require 'erb'

module OEHClient

	module Helper

		module Request

			ONE_PROTOCOL 			= "https://"
			THUNDERHEAD_DOMAIN 		= ".thunderhead.com"
			ONE_URI_PART 			= "/one/oauth1"

			API_URI_PART 			= "/rt/api"
			API_VERSION 			= "/2.0"

			# request_url builds the target request URL with the passed parameters, URL encoding the parameters
			#  as necessary to create a valid request
			def self.format_url(url, params)

				# for each of the parameters, build a single query parameter string
				parameter_part = ""
				params.each do |key, value|
					# if there is more than one argument, add the apppropriate separator (&) between 
					#  query parameters
					parameter_part << "&" if (parameter_part.length > 0)
					# URL Encode the value of the property
					parameter_part << "#{key.to_s}=#{ERB::Util.url_encode(value)}"

				end
				# return the fully-qualified URL with parameters (if passsed)
				(parameter_part.length > 0 ? "#{url}?#{parameter_part}" : "#{url}")

			end

			# default_JSON_header is the default header that is passed to any OEH Request if not provided explicitly by the 
			#  calling methods
			def self.default_JSON_header()
				{'Accept' => 'application/json' , 'Content-Type' =>'application/json', 'X-Requested-With' => 'XMLHttpRequest' }
			end


		end  # module Request

		module Response

			def self.handle(api_response)

				# raise a generic HTTPRequestException if the the status code is not 100 (Continue) or 200 (OK)
				raise OEHClient::Exception::HTTPRequestException.new(api_response.message, api_response.code) if (api_response.code != "200" && api_response.code != "100")
				
				begin
					# Return the Body of the response for valid requests
					ActiveSupport::JSON.decode(api_response.body)
				rescue ActiveSupport::JSON.parse_error
					# otherwise raise a standard processing exception
					raise OEHClient::Exception::HTTPRequestException(api.body, 500)
				end


			end

		end # module Response

	end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
oeh-client-0.1.0 lib/oehclient/helper.rb