Class: TestdroidAPI::ApikeyClient
- Inherits:
-
Client
- Object
- Client
- TestdroidAPI::ApikeyClient
show all
- Defined in:
- lib/testdroid_api/apikey_client.rb
Constant Summary
collapse
- API_VERSION =
'api/v2'
- CLOUD_ENDPOINT =
'https://cloud.bitbar.com'
Instance Attribute Summary collapse
Attributes inherited from Client
#token
Instance Method Summary
collapse
-
#authorize ⇒ Object
-
#delete(uri) ⇒ Object
-
#download(uri, file_name, params = {}, http_params = {}) ⇒ Object
-
#get(uri, params = {}, http_params = {}) ⇒ Object
-
#initialize(api_key, cloud_url = CLOUD_ENDPOINT, logger = nil) ⇒ ApikeyClient
constructor
A new instance of ApikeyClient.
-
#post(uri, params = {}, http_params = {}) ⇒ Object
-
#request_factory(method, uri, http_params = {}, headers = {}) ⇒ Object
-
#upload(uri, file_name) ⇒ Object
Methods inherited from Client
#admin, #device_session_connections, #devices, #info, #label_groups, #me, #mime_for, #properties
Constructor Details
#initialize(api_key, cloud_url = CLOUD_ENDPOINT, logger = nil) ⇒ ApikeyClient
Returns a new instance of ApikeyClient.
10
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/testdroid_api/apikey_client.rb', line 10
def initialize(api_key, cloud_url = CLOUD_ENDPOINT, logger = nil)
@api_key = api_key
@cloud_url = cloud_url
@logger = logger
if @logger.nil?
@logger = Logger.new(STDOUT)
@logger.info("Logger is not defined => output to STDOUT")
end
end
|
Instance Attribute Details
#config ⇒ Object
Returns the value of attribute config.
4
5
6
|
# File 'lib/testdroid_api/apikey_client.rb', line 4
def config
@config
end
|
#logger ⇒ Object
Returns the value of attribute logger.
5
6
7
|
# File 'lib/testdroid_api/apikey_client.rb', line 5
def logger
@logger
end
|
Instance Method Details
#delete(uri) ⇒ Object
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
# File 'lib/testdroid_api/apikey_client.rb', line 80
def delete(uri)
uri = @cloud_url + uri
begin
request = self.request_factory(:delete, uri)
resp = request.execute
rescue => e
@logger.error "Failed to delete resource #{uri} #{e}"
return nil
end
if resp.code != 204
@logger.error "Failed to delete resource #{uri} #{e}"
else
@logger.info "response: #{resp.code}"
end
end
|
#download(uri, file_name, params = {}, http_params = {}) ⇒ Object
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
# File 'lib/testdroid_api/apikey_client.rb', line 104
def download(uri, file_name, params = {}, http_params = {})
begin
::File.open(file_name, "w+b") do |file|
full_uri = uri.start_with?(@cloud_url) ? uri : @cloud_url + uri
http_params = http_params.deep_merge({:headers => {:params => params}})
request = self.request_factory(:get, full_uri, http_params)
resp = request.execute
file.write(resp.body)
end
rescue => e
@logger.error "Failed to get resource #{uri} #{e}"
return nil
end
end
|
#get(uri, params = {}, http_params = {}) ⇒ Object
47
48
49
50
51
52
53
54
55
56
57
58
|
# File 'lib/testdroid_api/apikey_client.rb', line 47
def get(uri, params = {}, http_params = {})
uri = @cloud_url + uri
begin
http_params = http_params.deep_merge({:headers => {:params => params}})
request = self.request_factory(:get, uri, http_params)
resp = request.execute
rescue => e
@logger.error "Failed to get resource #{uri} #{e}"
return nil
end
JSON.parse(resp.body)
end
|
#post(uri, params = {}, http_params = {}) ⇒ Object
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/testdroid_api/apikey_client.rb', line 60
def post(uri, params = {}, http_params = {})
uri = @cloud_url + uri
begin
payload = params.fetch(:body, params)
= params.fetch(:headers, {})
http_params = http_params.deep_merge({:payload => payload})
request = self.request_factory(:post, uri, http_params, )
resp = request.execute
rescue => e
@logger.error "Failed to post resource #{uri} #{e}"
return nil
end
if resp.body.nil? || resp.body.length == 0
return nil
end
JSON.parse(resp.body)
end
|
#request_factory(method, uri, http_params = {}, headers = {}) ⇒ Object
34
35
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/testdroid_api/apikey_client.rb', line 34
def request_factory(method, uri, http_params = {}, = {})
default_http_params = {
:method => method,
:url => uri,
:user => @api_key,
:password => "",
:headers =>
}
request_http_params = default_http_params.deep_merge!(http_params)
RestClient::Request.new(request_http_params)
end
|
#upload(uri, file_name) ⇒ Object
97
98
99
100
101
102
|
# File 'lib/testdroid_api/apikey_client.rb', line 97
def upload(uri, file_name)
self.post(uri, {
:multipart => true,
:file => ::File.new(file_name, 'rb')
})
end
|