1 | debug = require('debug')('meshblu-server-http:subscription-controller')
|
2 | _ = require 'lodash'
|
3 | JobToHttp = require '../helpers/job-to-http'
|
4 |
|
5 | class 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 |
|
24 | module.exports = SubscriptionsController
|