endo-core
Version:
Put some description here
61 lines (47 loc) • 3.34 kB
text/coffeescript
MeshbluAuth = require 'express-meshblu-auth'
passport = require 'passport'
CredentialsDeviceController = require './controllers/credentials-device-controller'
FormSchemaController = require './controllers/form-schema-controller'
MessagesController = require './controllers/messages-controller'
MessageSchemaController = require './controllers/message-schema-controller'
OctobluAuthController = require './controllers/octoblu-auth-controller'
ResponseSchemaController = require './controllers/response-schema-controller'
UserDevicesController = require './controllers/user-devices-controller'
class Router
constructor: (options) ->
{, , } = options
{, , } = options
throw new Error 'appOctobluHost is required' unless ?
throw new Error 'credentialsDeviceService is required' unless ?
throw new Error 'meshbluConfig is required' unless ?
throw new Error 'messagesService is required' unless ?
throw new Error 'serviceUrl is required' unless ?
throw new Error 'userDeviceManagerUrl is required' unless ?
= new CredentialsDeviceController {, , , }
= new FormSchemaController {}
= new MessagesController {, }
= new MessageSchemaController {}
= new OctobluAuthController
= new ResponseSchemaController {}
= new UserDevicesController
route: (app) =>
meshbluAuth = new MeshbluAuth
app.get '/', (req, res) => res.redirect('/auth/octoblu')
app.get '/v1/form-schema', .list
app.get '/v1/message-schema', .list
app.get '/v1/response-schema', .list
app.get '/auth/octoblu', passport.authenticate('octoblu')
app.get '/auth/octoblu/callback', passport.authenticate('octoblu', failureRedirect: '/auth/octoblu'), .storeAuthAndRedirect
app.use meshbluAuth.auth()
app.use meshbluAuth.gatewayRedirect('/auth/octoblu')
app.get '/auth/api', passport.authenticate('api')
app.get '/auth/api/callback', passport.authenticate('api'), .upsert
app.post '/auth/api/callback', passport.authenticate('api'), .upsert
app.post '/v1/messages', .create
app.all '/:credentialsDeviceUuid*', .getCredentialsDevice
app.get '/:credentialsDeviceUuid', .get
app.get '/:credentialsDeviceUuid/user-devices', .list
app.post '/:credentialsDeviceUuid/user-devices', .create
app.delete '/:credentialsDeviceUuid/user-devices/:userDeviceUuid', .delete
app.use (req, res) => res.redirect '/auth/api'
module.exports = Router