endo-core
Version:
Put some description here
76 lines (60 loc) • 3.8 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'
StaticSchemasController = require './controllers/static-schemas-controller'
UserDevicesController = require './controllers/user-devices-controller'
class Router
constructor: (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 StaticSchemasController {}
= 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 '/schemas/:name', .get
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')
upsert = .upsertWithRedirect
upsert = .upsertWithoutRedirect if
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 '/credentials/:credentialsDeviceUuid*', .getCredentialsDevice
app.get '/credentials/:credentialsDeviceUuid', .get
app.get '/credentials/:credentialsDeviceUuid/user-devices', .list
app.post '/credentials/:credentialsDeviceUuid/user-devices', .create
app.delete '/credentials/:credentialsDeviceUuid/user-devices/:userDeviceUuid', .delete
app.use (req, res) => res.redirect '/auth/api'
module.exports = Router