Class: Devtunnel::Api

Inherits:
Object
  • Object
show all
Defined in:
lib/devtunnel/api.rb

Constant Summary collapse

@@api_jack =
nil

Class Method Summary collapse

Class Method Details

.execute_request(params) ⇒ Object



44
45
46
47
48
49
50
51
52
# File 'lib/devtunnel/api.rb', line 44

def self.execute_request(params)
	if Devtunnel::Api.jack
		ApiResponse.new Devtunnel::Api.jack.execute(params)
	else
		RestClient::Request.new(params).execute do |response, request, result, &block|
			ApiResponse.new(response)
		end
	end
end

.execute_xml_request(params) ⇒ Object



62
63
64
65
66
67
68
69
70
# File 'lib/devtunnel/api.rb', line 62

def self.execute_xml_request(params)
	if Devtunnel::Api.jack
		ApiResponse.new Devtunnel::Api.jack.execute(params)
	else
		RestClient::Request.new(params).execute do |response, request, result, &block|
			response
		end
	end
end

.jackObject



10
11
12
# File 'lib/devtunnel/api.rb', line 10

def self.jack
	@@api_jack
end

.jack=(double) ⇒ Object



7
8
9
# File 'lib/devtunnel/api.rb', line 7

def self.jack=(double)
		@@api_jack = double
end

.request(method, url, params = {}, api_key = :account_api_key) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/devtunnel/api.rb', line 14

def self.request method, url, params = {}, api_key = :account_api_key
	begin
		basic_username = 	Devtunnel.api_key

		if params[:basic_username]
			basic_username = params[:basic_username]
			params.delete(:basic_username)
		end
		if params[:basic_password]
			basic_password = params[:basic_password]
			params.delete(:basic_password)
		end

		req_params = { :user => basic_username, :password => basic_password,
			:method => method, :url => "#{Devtunnel.api_url}#{url}", :payload => params}

		self.execute_request(req_params)

	rescue Errno::ECONNREFUSED => e
		raise ApiError.new(500, {}, {"errors" => [{"code" => 993, "message" => "Unable to connect to API server"}]})
	rescue ExpiredApiKey => e
		raise e
	rescue InvalidApiKey => e
		raise e
    rescue Exception => e
	# what kind of generic exceptions might we be loking for?
		raise ApiError.new(500, {}, {"errors" => [{"code" => 996, "message" => "Error getting response from API server "+e.inspect}]})
	end
end

.xml_request(method, url, params = {}) ⇒ Object



54
55
56
57
58
59
60
# File 'lib/devtunnel/api.rb', line 54

def self.xml_request method, url, params = {}
		basic_username = 	Devtunnel.api_key
		req_params = { :method => method, :url => url, :payload => params}

		self.execute_xml_request(req_params)
	
end