UNPKG

968 Btext/coffeescriptView Raw
1debug = require('debug')('meshblu-server-http:subscription-controller')
2_ = require 'lodash'
3JobToHttp = require '../helpers/job-to-http'
4
5class SubscriptionsController
6 constructor: ({@jobManager, @jobToHttp}) ->
7
8 list: (req, res) =>
9 job = @jobToHttp.httpToJob jobType: 'SubscriptionList', request: req, toUuid: req.params.uuid
10
11 @jobManager.do 'request', 'response', job, (error, jobResponse) =>
12 return res.sendError error if error?
13 return res.sendError new Error('Did not receive jobResponse') unless jobResponse?
14
15 _.each jobResponse.metadata, (value, key) => res.set "x-meshblu-#{_.kebabCase(key)}", value
16 return res.sendStatus jobResponse.metadata.code unless jobResponse.rawData?
17 subscriptions = _.map JSON.parse(jobResponse.rawData), (subscription) =>
18 uuid: subscription.emitterUuid
19 type: subscription.type
20
21 res.status(200).send(subscriptions)
22
23
24module.exports = SubscriptionsController