meshblu-server-http
Version:
Maybe. Unofficial. You know how it is.
68 lines (64 loc) • 4.29 kB
text/coffeescript
AuthenticateController = require './controllers/authenticate-controller'
DeviceV1Controller = require './controllers/device-v1-controller'
DeviceV2Controller = require './controllers/device-v2-controller'
DeviceV3Controller = require './controllers/device-v3-controller'
GlobalPublicKeyController = require './controllers/global-public-key-controller'
MessagesController = require './controllers/messages-controller'
RegisterDeviceController = require './controllers/register-device-controller'
SearchDeviceController = require './controllers/search-device-controller'
StatusController = require './controllers/status-controller'
SubscriptionsController = require './controllers/subscriptions-controller'
TokenController = require './controllers/token-controller'
UnregisterDeviceController = require './controllers/unregister-device-controller'
WhoamiController = require './controllers/whoami-controller'
request = require 'request'
url = require 'url'
class Router
constructor: ({jobManager, jobToHttp})->
= new AuthenticateController {jobManager, jobToHttp}
= new DeviceV1Controller {jobManager, jobToHttp}
= new DeviceV2Controller {jobManager, jobToHttp}
= new DeviceV3Controller {jobManager, jobToHttp}
= new GlobalPublicKeyController {jobManager, jobToHttp}
= new MessagesController {jobManager, jobToHttp}
= new RegisterDeviceController {jobManager}
= new SearchDeviceController {jobManager, jobToHttp}
= new StatusController {jobManager}
= new SubscriptionsController {jobManager, jobToHttp}
= new TokenController {jobManager, jobToHttp}
= new UnregisterDeviceController {jobManager, jobToHttp}
= new WhoamiController {jobManager, jobToHttp}
route: (app) =>
app.get '/authenticate/:uuid', .checkDevice
app.post '/authenticate', .check
app.post '/claimdevice/:uuid', .claimdevice
app.get '/devices', .searchV1
app.post '/devices', .register
app.put '/devices/:uuid', .update
app.get '/devices/:uuid', .get
app.delete '/devices/:uuid', .unregister
app.get '/devices/:uuid/publickey', .getPublicKey
app.post '/devices/:uuid/token', .resetToken
app.post '/devices/:uuid/tokens', .create
app.delete '/devices/:uuid/tokens', .revokeByQuery
app.delete '/devices/:uuid/tokens/:token', .destroy
app.post '/messages', .create
app.get '/mydevices', .mydevices
app.get '/publickey', .get
app.post '/search/devices', .searchV3
app.get '/status', .get
app.get '/subscribe*', (req, res) =>
proto = req.header('x-forwarded-proto') ? 'https'
host = 'meshblu-http-streaming.octoblu.com'
url = "#{proto}://#{host}#{req.url}"
res.redirect(301, url)
app.get '/v2/devices', .searchV2
app.get '/v2/devices/:uuid', .get
app.patch '/v2/devices/:uuid', .update
app.put '/v2/devices/:uuid', .updateDangerously
app.get '/v2/devices/:uuid/subscriptions', .list
app.post '/v2/devices/:subscriberUuid/subscriptions/:emitterUuid/:type', .create
app.delete '/v2/devices/:subscriberUuid/subscriptions/:emitterUuid/:type', .remove
app.get '/v3/devices/:uuid', .get
app.get '/v2/whoami', .show
module.exports = Router