triggers-service
Version:
Service to list and activate Octoblu triggers
34 lines (25 loc) • 1.36 kB
text/coffeescript
_ = require 'lodash'
TriggersController = require './controllers/triggers-controller'
meshbluAuth = require 'express-meshblu-auth'
MeshbluAuthExpress = require 'express-meshblu-auth/src/meshblu-auth-express'
class Router
constructor: ({@meshbluConfig}) ->
@meshbluAuth = meshbluAuth @meshbluConfig
@triggersController = new TriggersController {@meshbluConfig}
route: (app) =>
app.get '/all-triggers', @meshbluAuth, @triggersController.allTriggers
app.get '/triggers', @meshbluAuth, @triggersController.myTriggers
app.get '/mytriggers', @meshbluAuth, @triggersController.myTriggers
app.get '/my-triggers', @meshbluAuth, @triggersController.myTriggers
app.post '/flows/:flowId/triggers/:triggerId', @_conditionalAuth, @triggersController.sendMessage
app.get '/flows/:flowId/triggers/:triggerId', @_conditionalAuth, @triggersController.sendMessage
_conditionalAuth: (req, res, next) =>
meshbluAuthExpress = new MeshbluAuthExpress @meshbluConfig
meshbluAuthExpress.getFromAnywhere req
auth = req.meshbluAuth ? {}
{uuid, token} = _.defaults auth, @meshbluConfig
return res.status(401).end() unless uuid? && token?
meshbluAuthExpress.authDeviceWithMeshblu uuid, token, (error) ->
return res.status(error.code ? 500).send(error.message) if error?
next()
module.exports = Router