balena-cli/lib/resin/models/device.coffee
2014-12-05 11:32:14 -04:00

66 lines
1.4 KiB
CoffeeScript

canvas = require('./_canvas')
_ = require('lodash')
errors = require('../errors/errors')
server = require('../server/server')
settings = require('../settings')
exports.getAll = (callback) ->
return canvas.get
resource: 'device'
options:
expand: 'application'
orderby: 'name asc'
.then (devices) ->
if _.isEmpty(devices)
return callback(new errors.NotAny('devices'))
return callback(null, devices)
.catch (error) ->
return callback(error)
exports.getAllByApplication = (applicationId, callback) ->
return canvas.get
resource: 'device'
options:
filter:
application: applicationId
expand: 'application'
orderby: 'name asc'
.then (devices) ->
if _.isEmpty(devices)
return callback(new errors.NotAny('devices'))
return callback(null, devices)
.catch (error) ->
return callback(error)
exports.get = (deviceId, callback) ->
return canvas.get
resource: 'device'
id: deviceId
options:
expand: 'application'
.then (device) ->
if not device?
return callback(new errors.NotFound("device #{id}"))
return callback(null, device)
.catch (error) ->
return callback(error)
exports.remove = (id, callback) ->
return canvas.delete
resource: 'device'
id: id
.then ->
return callback()
.catch (error) ->
return callback(error)
exports.identify = (uuid, callback) ->
server.post(settings.get('urls.identify'), { uuid }, callback)