Class: MokiRuby::MokiAPI

Inherits:
Object
  • Object
show all
Includes:
Celluloid::IO
Defined in:
lib/moki_ruby/moki_api.rb

Constant Summary collapse

BASE_URL =
'/rest/v1/api/tenants/'

Class Method Summary collapse

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_profilesObject



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, options)
  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, options) do |request|
        request.headers = request.headers.merge(headers)
      end
      to_return_type response
    rescue => e
      Honeybadger.notify(e, context: { method: method,
                                       url: url,
                                       options: 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_listObject



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, options)
  self.class.issue_request(method, url, options)
end