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.testdroid.com'
{'Accept' => 'application/json'}
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 = {}) ⇒ 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.
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/testdroid_api/apikey_client.rb', line 11
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
# File 'lib/testdroid_api/apikey_client.rb', line 78
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.status != 204)
@logger.error "Failed to delete resource #{uri} #{e}"
return nil
else
@logger.info "response: #{resp.status}"
end
end
|
#download(uri, file_name, params = {}, http_params = {}) ⇒ Object
103
104
105
106
107
108
109
110
111
112
113
114
115
|
# File 'lib/testdroid_api/apikey_client.rb', line 103
def download(uri, file_name, params={}, http_params={})
begin
File.open(file_name, "w+b") do |file|
http_params = http_params.deep_merge({ :headers => {:params => params} })
request = self.request_factory(:get, @cloud_url+"#{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
|
# File 'lib/testdroid_api/apikey_client.rb', line 60
def post(uri, params={}, http_params={})
uri = @cloud_url+uri
begin
http_params = http_params.deep_merge({ :payload => params })
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 = {}) ⇒ 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 => ACCEPT_HEADERS
}
request_http_params = default_http_params.deep_merge!(http_params)
RestClient::Request.new(request_http_params)
end
|
#upload(uri, file_name) ⇒ Object
96
97
98
99
100
101
|
# File 'lib/testdroid_api/apikey_client.rb', line 96
def upload(uri, file_name)
self.post(uri, {
:multipart => true,
:file => File.new(file_name, 'rb')
})
end
|