Class: LosantRest::Device

Inherits:
Object
  • Object
show all
Defined in:
lib/losant_rest/device.rb

Overview

Class containing all the actions for the Device Resource

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Device

Returns a new instance of Device.



6
7
8
# File 'lib/losant_rest/device.rb', line 6

def initialize(client)
  @client = client
end

Instance Method Details

#delete(params = {}) ⇒ Object

Deletes a device

Parameters:

  • string applicationId - ID associated with the application

  • string deviceId - ID associated with the device

  • string losantdomain - Domain scope of request (rarely needed)

  • boolean _actions - Return resource actions in response

  • boolean _links - Return resource link in response

  • boolean _embedded - Return embedded resources in response

Responses:

Errors:

Raises:

  • (ArgumentError)


26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/losant_rest/device.rb', line 26

def delete(params = {})
  params = Utils.symbolize_hash_keys(params)
  query_params = { _actions: false, _links: true, _embedded: true }
  headers = {}
  body = nil

  raise ArgumentError.new("applicationId is required") unless params.has_key?(:applicationId)
  raise ArgumentError.new("deviceId is required") unless params.has_key?(:deviceId)

  headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
  query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
  query_params[:_links] = params[:_links] if params.has_key?(:_links)
  query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)

  path = "/applications/#{params[:applicationId]}/devices/#{params[:deviceId]}"

  @client.request(
    method: :delete,
    path: path,
    query: query_params,
    headers: headers,
    body: body)
end

#export(params = {}) ⇒ Object

Creates a device data export. Defaults to all data.

Parameters:

  • string applicationId - ID associated with the application

  • string deviceId - ID associated with the device

  • string start - Start time of export (ms since epoch - 0 means now, negative is relative to now)

  • string end - End time of export (ms since epoch - 0 means now, negative is relative to now)

  • string email - Email address to send export to. Defaults to current user's email.

  • string callbackUrl - Callback URL to call with export result.

  • string losantdomain - Domain scope of request (rarely needed)

  • boolean _actions - Return resource actions in response

  • boolean _links - Return resource link in response

  • boolean _embedded - Return embedded resources in response

Responses:

Errors:

Raises:

  • (ArgumentError)


70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/losant_rest/device.rb', line 70

def export(params = {})
  params = Utils.symbolize_hash_keys(params)
  query_params = { _actions: false, _links: true, _embedded: true }
  headers = {}
  body = nil

  raise ArgumentError.new("applicationId is required") unless params.has_key?(:applicationId)
  raise ArgumentError.new("deviceId is required") unless params.has_key?(:deviceId)

  query_params[:start] = params[:start] if params.has_key?(:start)
  query_params[:end] = params[:end] if params.has_key?(:end)
  query_params[:email] = params[:email] if params.has_key?(:email)
  query_params[:callbackUrl] = params[:callbackUrl] if params.has_key?(:callbackUrl)
  headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
  query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
  query_params[:_links] = params[:_links] if params.has_key?(:_links)
  query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)

  path = "/applications/#{params[:applicationId]}/devices/#{params[:deviceId]}/export"

  @client.request(
    method: :post,
    path: path,
    query: query_params,
    headers: headers,
    body: body)
end

#get(params = {}) ⇒ Object

Retrieves information on a device

Parameters:

  • string applicationId - ID associated with the application

  • string deviceId - ID associated with the device

  • string losantdomain - Domain scope of request (rarely needed)

  • boolean _actions - Return resource actions in response

  • boolean _links - Return resource link in response

  • boolean _embedded - Return embedded resources in response

Responses:

Errors:

Raises:

  • (ArgumentError)


114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# File 'lib/losant_rest/device.rb', line 114

def get(params = {})
  params = Utils.symbolize_hash_keys(params)
  query_params = { _actions: false, _links: true, _embedded: true }
  headers = {}
  body = nil

  raise ArgumentError.new("applicationId is required") unless params.has_key?(:applicationId)
  raise ArgumentError.new("deviceId is required") unless params.has_key?(:deviceId)

  headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
  query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
  query_params[:_links] = params[:_links] if params.has_key?(:_links)
  query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)

  path = "/applications/#{params[:applicationId]}/devices/#{params[:deviceId]}"

  @client.request(
    method: :get,
    path: path,
    query: query_params,
    headers: headers,
    body: body)
end

#get_command(params = {}) ⇒ Object

Retrieve the last known commands(s) sent to the device

Parameters:

  • string applicationId - ID associated with the application

  • string deviceId - ID associated with the device

  • string limit - Max command entries to return (ordered by time descending)

  • string since - Look for command entries since this time (ms since epoch)

  • string losantdomain - Domain scope of request (rarely needed)

  • boolean _actions - Return resource actions in response

  • boolean _links - Return resource link in response

  • boolean _embedded - Return embedded resources in response

Responses:

Errors:

Raises:

  • (ArgumentError)


156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
# File 'lib/losant_rest/device.rb', line 156

def get_command(params = {})
  params = Utils.symbolize_hash_keys(params)
  query_params = { _actions: false, _links: true, _embedded: true }
  headers = {}
  body = nil

  raise ArgumentError.new("applicationId is required") unless params.has_key?(:applicationId)
  raise ArgumentError.new("deviceId is required") unless params.has_key?(:deviceId)

  query_params[:limit] = params[:limit] if params.has_key?(:limit)
  query_params[:since] = params[:since] if params.has_key?(:since)
  headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
  query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
  query_params[:_links] = params[:_links] if params.has_key?(:_links)
  query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)

  path = "/applications/#{params[:applicationId]}/devices/#{params[:deviceId]}/command"

  @client.request(
    method: :get,
    path: path,
    query: query_params,
    headers: headers,
    body: body)
end

#get_composite_state(params = {}) ⇒ Object

Retrieve the composite last complete state of the device

Parameters:

  • string applicationId - ID associated with the application

  • string deviceId - ID associated with the device

  • string start - Start of time range to look at to build composite state

  • string end - End of time range to look at to build composite state

  • string losantdomain - Domain scope of request (rarely needed)

  • boolean _actions - Return resource actions in response

  • boolean _links - Return resource link in response

  • boolean _embedded - Return embedded resources in response

Responses:

Errors:

Raises:

  • (ArgumentError)


200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
# File 'lib/losant_rest/device.rb', line 200

def get_composite_state(params = {})
  params = Utils.symbolize_hash_keys(params)
  query_params = { _actions: false, _links: true, _embedded: true }
  headers = {}
  body = nil

  raise ArgumentError.new("applicationId is required") unless params.has_key?(:applicationId)
  raise ArgumentError.new("deviceId is required") unless params.has_key?(:deviceId)

  query_params[:start] = params[:start] if params.has_key?(:start)
  query_params[:end] = params[:end] if params.has_key?(:end)
  headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
  query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
  query_params[:_links] = params[:_links] if params.has_key?(:_links)
  query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)

  path = "/applications/#{params[:applicationId]}/devices/#{params[:deviceId]}/compositeState"

  @client.request(
    method: :get,
    path: path,
    query: query_params,
    headers: headers,
    body: body)
end

#get_log_entries(params = {}) ⇒ Object

Retrieve the recent log entries about the device

Parameters:

  • string applicationId - ID associated with the application

  • string deviceId - ID associated with the device

  • string limit - Max log entries to return (ordered by time descending)

  • string since - Look for log entries since this time (ms since epoch)

  • string losantdomain - Domain scope of request (rarely needed)

  • boolean _actions - Return resource actions in response

  • boolean _links - Return resource link in response

  • boolean _embedded - Return embedded resources in response

Responses:

Errors:

Raises:

  • (ArgumentError)


244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
# File 'lib/losant_rest/device.rb', line 244

def get_log_entries(params = {})
  params = Utils.symbolize_hash_keys(params)
  query_params = { _actions: false, _links: true, _embedded: true }
  headers = {}
  body = nil

  raise ArgumentError.new("applicationId is required") unless params.has_key?(:applicationId)
  raise ArgumentError.new("deviceId is required") unless params.has_key?(:deviceId)

  query_params[:limit] = params[:limit] if params.has_key?(:limit)
  query_params[:since] = params[:since] if params.has_key?(:since)
  headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
  query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
  query_params[:_links] = params[:_links] if params.has_key?(:_links)
  query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)

  path = "/applications/#{params[:applicationId]}/devices/#{params[:deviceId]}/logs"

  @client.request(
    method: :get,
    path: path,
    query: query_params,
    headers: headers,
    body: body)
end

#get_state(params = {}) ⇒ Object

Retrieve the last known state(s) of the device

Parameters:

  • string applicationId - ID associated with the application

  • string deviceId - ID associated with the device

  • string limit - Max state entries to return (ordered by time descending)

  • string since - Look for state entries since this time (ms since epoch)

  • string losantdomain - Domain scope of request (rarely needed)

  • boolean _actions - Return resource actions in response

  • boolean _links - Return resource link in response

  • boolean _embedded - Return embedded resources in response

Responses:

Errors:

Raises:

  • (ArgumentError)


288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
# File 'lib/losant_rest/device.rb', line 288

def get_state(params = {})
  params = Utils.symbolize_hash_keys(params)
  query_params = { _actions: false, _links: true, _embedded: true }
  headers = {}
  body = nil

  raise ArgumentError.new("applicationId is required") unless params.has_key?(:applicationId)
  raise ArgumentError.new("deviceId is required") unless params.has_key?(:deviceId)

  query_params[:limit] = params[:limit] if params.has_key?(:limit)
  query_params[:since] = params[:since] if params.has_key?(:since)
  headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
  query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
  query_params[:_links] = params[:_links] if params.has_key?(:_links)
  query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)

  path = "/applications/#{params[:applicationId]}/devices/#{params[:deviceId]}/state"

  @client.request(
    method: :get,
    path: path,
    query: query_params,
    headers: headers,
    body: body)
end

#patch(params = {}) ⇒ Object

Updates information about a device

Parameters:

  • string applicationId - ID associated with the application

  • string deviceId - ID associated with the device

  • hash device - Object containing new properties of the device (api.losant.com/#/definitions/devicePatch)

  • string losantdomain - Domain scope of request (rarely needed)

  • boolean _actions - Return resource actions in response

  • boolean _links - Return resource link in response

  • boolean _embedded - Return embedded resources in response

Responses:

Errors:

Raises:

  • (ArgumentError)


331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
# File 'lib/losant_rest/device.rb', line 331

def patch(params = {})
  params = Utils.symbolize_hash_keys(params)
  query_params = { _actions: false, _links: true, _embedded: true }
  headers = {}
  body = nil

  raise ArgumentError.new("applicationId is required") unless params.has_key?(:applicationId)
  raise ArgumentError.new("deviceId is required") unless params.has_key?(:deviceId)
  raise ArgumentError.new("device is required") unless params.has_key?(:device)

  body = params[:device] if params.has_key?(:device)
  headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
  query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
  query_params[:_links] = params[:_links] if params.has_key?(:_links)
  query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)

  path = "/applications/#{params[:applicationId]}/devices/#{params[:deviceId]}"

  @client.request(
    method: :patch,
    path: path,
    query: query_params,
    headers: headers,
    body: body)
end

#remove_data(params = {}) ⇒ Object

Removes all device data for the specified time range. Defaults to all data.

Parameters:

  • string applicationId - ID associated with the application

  • string deviceId - ID associated with the device

  • string start - Start time of export (ms since epoch - 0 means now, negative is relative to now)

  • string end - End time of export (ms since epoch - 0 means now, negative is relative to now)

  • string losantdomain - Domain scope of request (rarely needed)

  • boolean _actions - Return resource actions in response

  • boolean _links - Return resource link in response

  • boolean _embedded - Return embedded resources in response

Responses:

Errors:

Raises:

  • (ArgumentError)


375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
# File 'lib/losant_rest/device.rb', line 375

def remove_data(params = {})
  params = Utils.symbolize_hash_keys(params)
  query_params = { _actions: false, _links: true, _embedded: true }
  headers = {}
  body = nil

  raise ArgumentError.new("applicationId is required") unless params.has_key?(:applicationId)
  raise ArgumentError.new("deviceId is required") unless params.has_key?(:deviceId)

  query_params[:start] = params[:start] if params.has_key?(:start)
  query_params[:end] = params[:end] if params.has_key?(:end)
  headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
  query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
  query_params[:_links] = params[:_links] if params.has_key?(:_links)
  query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)

  path = "/applications/#{params[:applicationId]}/devices/#{params[:deviceId]}/data"

  @client.request(
    method: :delete,
    path: path,
    query: query_params,
    headers: headers,
    body: body)
end

#send_command(params = {}) ⇒ Object

Send a command to a device

Parameters:

  • string applicationId - ID associated with the application

  • string deviceId - ID associated with the device

  • hash deviceCommand - Command to send to the device (api.losant.com/#/definitions/deviceCommand)

  • string losantdomain - Domain scope of request (rarely needed)

  • boolean _actions - Return resource actions in response

  • boolean _links - Return resource link in response

  • boolean _embedded - Return embedded resources in response

Responses:

Errors:

Raises:

  • (ArgumentError)


418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
# File 'lib/losant_rest/device.rb', line 418

def send_command(params = {})
  params = Utils.symbolize_hash_keys(params)
  query_params = { _actions: false, _links: true, _embedded: true }
  headers = {}
  body = nil

  raise ArgumentError.new("applicationId is required") unless params.has_key?(:applicationId)
  raise ArgumentError.new("deviceId is required") unless params.has_key?(:deviceId)
  raise ArgumentError.new("deviceCommand is required") unless params.has_key?(:deviceCommand)

  body = params[:deviceCommand] if params.has_key?(:deviceCommand)
  headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
  query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
  query_params[:_links] = params[:_links] if params.has_key?(:_links)
  query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)

  path = "/applications/#{params[:applicationId]}/devices/#{params[:deviceId]}/command"

  @client.request(
    method: :post,
    path: path,
    query: query_params,
    headers: headers,
    body: body)
end

#send_state(params = {}) ⇒ Object

Send the current state of the device

Parameters:

  • string applicationId - ID associated with the application

  • string deviceId - ID associated with the device

  • hash deviceState - A single device state object, or an array of device state objects (api.losant.com/#/definitions/deviceStateOrStates)

  • string losantdomain - Domain scope of request (rarely needed)

  • boolean _actions - Return resource actions in response

  • boolean _links - Return resource link in response

  • boolean _embedded - Return embedded resources in response

Responses:

Errors:

Raises:

  • (ArgumentError)


461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
# File 'lib/losant_rest/device.rb', line 461

def send_state(params = {})
  params = Utils.symbolize_hash_keys(params)
  query_params = { _actions: false, _links: true, _embedded: true }
  headers = {}
  body = nil

  raise ArgumentError.new("applicationId is required") unless params.has_key?(:applicationId)
  raise ArgumentError.new("deviceId is required") unless params.has_key?(:deviceId)
  raise ArgumentError.new("deviceState is required") unless params.has_key?(:deviceState)

  body = params[:deviceState] if params.has_key?(:deviceState)
  headers[:losantdomain] = params[:losantdomain] if params.has_key?(:losantdomain)
  query_params[:_actions] = params[:_actions] if params.has_key?(:_actions)
  query_params[:_links] = params[:_links] if params.has_key?(:_links)
  query_params[:_embedded] = params[:_embedded] if params.has_key?(:_embedded)

  path = "/applications/#{params[:applicationId]}/devices/#{params[:deviceId]}/state"

  @client.request(
    method: :post,
    path: path,
    query: query_params,
    headers: headers,
    body: body)
end