moki_ruby 0.0.4 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4fd513abc6ab3619a13bb2a042f56ed7c33f8c0e
4
- data.tar.gz: 4cd6b2286ea3489638c97716ea559a64fd15926a
3
+ metadata.gz: d18fa9f0208d979d58737d1e2b635d8cbb32114f
4
+ data.tar.gz: 666eb49b7a30e14fc61a307afa51830b3c5a9279
5
5
  SHA512:
6
- metadata.gz: 0d22d0fb13a6d2b996ae352b3b6af9790a996b93a7baba7583e0ed5b89b0446cca4733c1326d87c7d469efb767fab119fa3924a8ca6f8e871101d48bc1b4159b
7
- data.tar.gz: 62100c3be98b02b2c44bcb7cb3b64df22a56cb6cb0f5ecb54f3eb9af2ef3191233af26f7dad9a7c0f3b40e9d7717e2526b019630fc8aa36610e433a11a79f276
6
+ metadata.gz: ac00d27b093c5339c995ff8284314de1f73f8c25e5d95186d9f666775dad020e78c68c7dea48ec7f86c459cfed0ff2f106191e4ead220960508537448db9fe0e
7
+ data.tar.gz: aaa2653f1443864249871a5bb2a1ef3caa49809a3335230fbe2db0d23adb5423a755d0e4c076d027b33dc5f062fe3e24df225e91fd882ac26c9e6ebe33982f4a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- moki_ruby (0.0.3)
4
+ moki_ruby (0.1.0)
5
5
  celluloid
6
6
  celluloid-io
7
7
  faraday
data/README.md CHANGED
@@ -68,14 +68,18 @@ Using this device, there are several methods available:
68
68
  object, for tracking in the future.
69
69
  - `device.get_action(action_id)` will take in an `id` from an `Action`
70
70
  object, and return an updated `Action` object.
71
+ - `device.pre_enroll` will send the serial number, `client_id`, and `token`
72
+ from the device for pre-enrollment, and will return `true` if
73
+ successful. If `client_id` or `token` are missing, both will be sent
74
+ as `nil`.
75
+
76
+ Note that if the device is not found, each method will return `nil`
77
+ instead of an object.
71
78
 
72
79
  ## To do
73
80
 
74
- - Handle cases where device is not found
75
- - Handle error cases
76
81
  - Confirm if profile is on device before adding/removing
77
82
  - Confirm if app is on device before installing
78
- - Add new Moki endpoints
79
83
 
80
84
  ## Special Thanks
81
85
 
@@ -1,5 +1,6 @@
1
1
  module MokiRuby
2
2
  class Device
3
+ attr_accessor :client_id, :token
3
4
  attr :id, :identifier_type
4
5
 
5
6
  def initialize(identifier)
@@ -61,6 +62,16 @@ module MokiRuby
61
62
  Action.from_hash(data.body)
62
63
  end
63
64
 
65
+ def pre_enroll
66
+ data = MokiAPI.pre_enroll(enroll_hash).value
67
+
68
+ if data.status == 200
69
+ return true
70
+ else
71
+ return nil
72
+ end
73
+ end
74
+
64
75
  def device_id_param
65
76
  if identifier_type == :serial
66
77
  "sn-!-#{ id }"
@@ -69,7 +80,7 @@ module MokiRuby
69
80
  end
70
81
  end
71
82
 
72
- private
83
+ private
73
84
 
74
85
  def is_serial?(id)
75
86
  (!id.nil? && id.length == 12)
@@ -78,5 +89,20 @@ module MokiRuby
78
89
  def is_udid?(id)
79
90
  !(/\A[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}\Z/.match(id)).nil?
80
91
  end
92
+
93
+ def enroll_hash
94
+ raise "Need Serial Number on Device for Enrollment" unless ((identifier_type == :serial) && !id.nil?)
95
+
96
+ hash = { "serialNumber" => id,
97
+ "clientCode" => nil,
98
+ "token" => nil }
99
+
100
+ unless token.nil? || token == "" || client_id.nil? || client_id == ""
101
+ hash = hash.merge({ "clientCode" => client_id.to_s,
102
+ "token" => token })
103
+ end
104
+
105
+ return hash
106
+ end
81
107
  end
82
108
  end
@@ -33,6 +33,10 @@ module MokiRuby
33
33
  issue_request(:get, full_url("/devices/#{ device_id }/actions/#{ action_id }"), {})
34
34
  end
35
35
 
36
+ def self.pre_enroll(enroll_hash)
37
+ issue_request(:post, full_url("/preenroll"), enroll_hash)
38
+ end
39
+
36
40
  def self.full_url(path)
37
41
  raise "No Moki URL Provided. Set ENV['MOKI_API_URL']." if ENV['MOKI_API_URL'].nil? || ENV['MOKI_API_URL'].empty?
38
42
  raise "No Tenant ID Provided. Set ENV['MOKI_TENANT_ID']." if ENV['MOKI_TENANT_ID'].nil? || ENV['MOKI_TENANT_ID'].empty?
@@ -1,3 +1,3 @@
1
1
  module MokiRuby
2
- VERSION = "0.0.4"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -172,4 +172,63 @@ describe MokiRuby::Device do
172
172
  expect(device.get_action(action_id)).to be_nil
173
173
  end
174
174
  end
175
+
176
+ describe "#pre_enroll" do
177
+ it "sends the serial number number along with the specific client id and token" do
178
+ device = MokiRuby::Device.new(sn)
179
+ device.client_id = 12944
180
+ device.token = "c12944-token"
181
+
182
+ expected_hash = { "clientCode" => "12944",
183
+ "serialNumber" => sn,
184
+ "token" => "c12944-token" }
185
+
186
+ expect(MokiAPI).to receive(:pre_enroll).with(expected_hash)
187
+ .and_return(Hashie::Mash.new(value: { body: @action_stub_response }))
188
+ device.pre_enroll
189
+ end
190
+
191
+ it "will error if does not have a serial number" do
192
+ expect {device.pre_enroll}.to raise_error
193
+ end
194
+
195
+ it "will send blank values for client ID and token if both are missing" do
196
+ device = MokiRuby::Device.new(sn)
197
+ expect(MokiAPI).to receive(:pre_enroll).with({ "clientCode" => nil, "serialNumber" => sn, "token" => nil })
198
+ .and_return(Hashie::Mash.new(value: { body: nil }))
199
+ device.pre_enroll
200
+ end
201
+
202
+ it "will send blank values for both client ID and token if client id is missing" do
203
+ device = MokiRuby::Device.new(sn)
204
+ device.token = "who cares"
205
+ expect(MokiAPI).to receive(:pre_enroll).with({ "clientCode" => nil, "serialNumber" => sn, "token" => nil })
206
+ .and_return(Hashie::Mash.new(value: { body: nil }))
207
+ device.pre_enroll
208
+ end
209
+
210
+ it "will send blank values for both client ID and token if token is missing" do
211
+ device = MokiRuby::Device.new(sn)
212
+ device.client_id = "who cares"
213
+ expect(MokiAPI).to receive(:pre_enroll).with({ "clientCode" => nil, "serialNumber" => sn, "token" => nil })
214
+ .and_return(Hashie::Mash.new(value: { body: nil }))
215
+ device.pre_enroll
216
+ end
217
+
218
+ it "will return true if enrollment is successful" do
219
+ device = MokiRuby::Device.new(sn)
220
+ allow(MokiAPI).to receive_message_chain(:pre_enroll, :value).
221
+ and_return(Hashie::Mash.new({ body: {}, status: 200, headers: {} }))
222
+
223
+ expect(device.pre_enroll).to be true
224
+ end
225
+
226
+ it "will return nil if enrollment is not successful" do
227
+ device = MokiRuby::Device.new(sn)
228
+ allow(MokiAPI).to receive_message_chain(:pre_enroll, :value).
229
+ and_return(Hashie::Mash.new({ body: {}, status: 500, headers: {} }))
230
+
231
+ expect(device.pre_enroll).to be_nil
232
+ end
233
+ end
175
234
  end
@@ -93,5 +93,18 @@ describe MokiAPI do
93
93
  MokiAPI.perform_action('abcd1234-1234-1234-1234-abcdef123456', body_hash)
94
94
  end
95
95
  end
96
+
97
+ describe "pre enroll" do
98
+ it 'performs the post to preenroll with the provided parameters' do
99
+ enroll_hash = { "serialNumber" => "ABCDEFGHIJKL", "clientCode" => "12944", "token" => "c12944-token" }
100
+ expect(MokiAPI).to receive(:issue_request) { |method, url, options|
101
+ expect(method).to eq(:post)
102
+ expect(url).to eq("http://localhost:9292/rest/v1/api/tenants/#{ ENV['MOKI_TENANT_ID'] }/preenroll")
103
+ expect(options).to eq enroll_hash
104
+ }.and_return('{}')
105
+
106
+ MokiAPI.pre_enroll(enroll_hash)
107
+ end
108
+ end
96
109
  end
97
110
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moki_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Trey Springer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-23 00:00:00.000000000 Z
11
+ date: 2015-02-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday