Class: MokiRuby::MokiAPI
- Inherits:
-
Object
- Object
- MokiRuby::MokiAPI
- Includes:
- Celluloid::IO
- Defined in:
- lib/moki_ruby/moki_api.rb
Constant Summary collapse
- BASE_URL =
'/rest/v1/api/tenants/'
Class Method Summary collapse
- .action(device_id, action_id) ⇒ Object
- .device_details(device_id) ⇒ Object
- .device_managed_app_list(device_id) ⇒ Object
- .device_profile_list(device_id) ⇒ Object
- .full_url(path) ⇒ Object
- .ios_profiles ⇒ Object
- .issue_request(method, url, options) ⇒ Object
- .perform_action(device_id, body_hash) ⇒ Object
- .pre_enroll(enroll_hash) ⇒ Object
- .tenant_managed_app_list ⇒ Object
Instance Method Summary collapse
Class Method Details
.action(device_id, action_id) ⇒ Object
36 37 38 |
# File 'lib/moki_ruby/moki_api.rb', line 36 def self.action(device_id, action_id) issue_request(:get, full_url("/devices/#{ device_id }/actions/#{ action_id }"), {}) end |
.device_details(device_id) ⇒ Object
16 17 18 |
# File 'lib/moki_ruby/moki_api.rb', line 16 def self.device_details(device_id) issue_request(:get, full_url("/devices/#{ device_id }"), {}) end |
.device_managed_app_list(device_id) ⇒ Object
28 29 30 |
# File 'lib/moki_ruby/moki_api.rb', line 28 def self.device_managed_app_list(device_id) issue_request(:get, full_url("/devices/#{ device_id }/managedapps"), {}) end |
.device_profile_list(device_id) ⇒ Object
20 21 22 |
# File 'lib/moki_ruby/moki_api.rb', line 20 def self.device_profile_list(device_id) issue_request(:get, full_url("/devices/#{ device_id }/profiles"), {}) end |
.full_url(path) ⇒ Object
44 45 46 47 48 49 |
# File 'lib/moki_ruby/moki_api.rb', line 44 def self.full_url(path) raise "No Moki URL Provided. Set ENV['MOKI_API_URL']." if ENV['MOKI_API_URL'].nil? || ENV['MOKI_API_URL'].empty? raise "No Tenant ID Provided. Set ENV['MOKI_TENANT_ID']." if ENV['MOKI_TENANT_ID'].nil? || ENV['MOKI_TENANT_ID'].empty? ENV['MOKI_API_URL'] + BASE_URL + ENV['MOKI_TENANT_ID'] + path end |
.ios_profiles ⇒ Object
12 13 14 |
# File 'lib/moki_ruby/moki_api.rb', line 12 def self.ios_profiles issue_request(:get, full_url('/iosprofiles'), {}) end |
.issue_request(method, url, options) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/moki_ruby/moki_api.rb', line 51 def self.issue_request(method, url, ) raise "No API Key Provided. Set ENV['MOKI_API_KEY']." if ENV['MOKI_API_KEY'].nil? || ENV['MOKI_API_KEY'].empty? future = Celluloid::Future.new do begin log_request(method, url) response = conn.send(method, url, ) do |request| request.headers = request.headers.merge(headers) end to_return_type response rescue => e Honeybadger.notify(e, context: { method: method, url: url, options: , response_status: response.try(:status), response_body: response.try(:body) }) if defined?(Honeybadger) raise e end end future.extend(FutureWrapper) end |
.perform_action(device_id, body_hash) ⇒ Object
32 33 34 |
# File 'lib/moki_ruby/moki_api.rb', line 32 def self.perform_action(device_id, body_hash) issue_request(:put, full_url("/devices/#{ device_id }/actions"), body_hash) end |
.pre_enroll(enroll_hash) ⇒ Object
40 41 42 |
# File 'lib/moki_ruby/moki_api.rb', line 40 def self.pre_enroll(enroll_hash) issue_request(:post, full_url("/preenroll"), enroll_hash) end |
.tenant_managed_app_list ⇒ Object
24 25 26 |
# File 'lib/moki_ruby/moki_api.rb', line 24 def self.tenant_managed_app_list issue_request(:get, full_url('/iosmanagedapps'), {}) end |
Instance Method Details
#issue_request(method, url, options) ⇒ Object
73 74 75 |
# File 'lib/moki_ruby/moki_api.rb', line 73 def issue_request(method, url, ) self.class.issue_request(method, url, ) end |