UNPKG

meshblu-server-http

Version:
39 lines (29 loc) 1.41 kB
JobToHttp = require '../helpers/job-to-http' debug = require('debug')('meshblu-server-http:get-device-controller') _ = require 'lodash' class DeviceV1Controller constructor: ({@jobManager, @jobToHttp}) -> get: (req, res) => job = @jobToHttp.httpToJob jobType: 'GetDevice', request: req, toUuid: req.params.uuid debug('dispatching request', job) @jobManager.do 'request', 'response', job, (error, jobResponse) => if !error? && jobResponse.metadata?.code == 403 error = code: 404, message: 'Devices not found' if error? if error.code == 403 # backwards compatibility with meshblu error.code = 404 error.message = 'Devices not found' jsonError = code: error.code message: error.message return res.status(error.code ? 500).send jsonError _.each jobResponse.metadata, (value, key) => res.set "x-meshblu-#{key}", value data = JSON.parse jobResponse.rawData res.status(jobResponse.metadata.code).send devices: [data] getPublicKey: (req, res) => job = @jobToHttp.httpToJob jobType: 'GetDevicePublicKey', request: req, toUuid: req.params.uuid debug('dispatching request', job) @jobManager.do 'request', 'response', job, (error, jobResponse) => return res.sendError error if error? @jobToHttp.sendJobResponse {jobResponse, res} module.exports = DeviceV1Controller