1 | AuthenticateController = require './controllers/authenticate-controller'
|
2 | DeviceV1Controller = require './controllers/device-v1-controller'
|
3 | DeviceV2Controller = require './controllers/device-v2-controller'
|
4 | DeviceV3Controller = require './controllers/device-v3-controller'
|
5 | GlobalPublicKeyController = require './controllers/global-public-key-controller'
|
6 | MessagesController = require './controllers/messages-controller'
|
7 | RegisterDeviceController = require './controllers/register-device-controller'
|
8 | SearchDeviceController = require './controllers/search-device-controller'
|
9 | StatusController = require './controllers/status-controller'
|
10 | SubscriptionsController = require './controllers/subscriptions-controller'
|
11 | TokenController = require './controllers/token-controller'
|
12 | UnregisterDeviceController = require './controllers/unregister-device-controller'
|
13 | WhoamiController = require './controllers/whoami-controller'
|
14 | request = require 'request'
|
15 | url = require 'url'
|
16 |
|
17 | class Router
|
18 | constructor: ({jobManager, jobToHttp})->
|
19 | @authenticateController = new AuthenticateController {jobManager, jobToHttp}
|
20 | @deviceV1Controller = new DeviceV1Controller {jobManager, jobToHttp}
|
21 | @deviceV2Controller = new DeviceV2Controller {jobManager, jobToHttp}
|
22 | @deviceV3Controller = new DeviceV3Controller {jobManager, jobToHttp}
|
23 | @globalPublicKeyController = new GlobalPublicKeyController {jobManager, jobToHttp}
|
24 | @messagesController = new MessagesController {jobManager, jobToHttp}
|
25 | @registerDeviceController = new RegisterDeviceController {jobManager}
|
26 | @searchDeviceController = new SearchDeviceController {jobManager, jobToHttp}
|
27 | @statusController = new StatusController {jobManager}
|
28 | @subscriptionsController = new SubscriptionsController {jobManager, jobToHttp}
|
29 | @tokenController = new TokenController {jobManager, jobToHttp}
|
30 | @unregisterDeviceController = new UnregisterDeviceController {jobManager, jobToHttp}
|
31 | @whoamiController = new WhoamiController {jobManager, jobToHttp}
|
32 |
|
33 | route: (app) =>
|
34 | app.get '/authenticate/:uuid', @authenticateController.checkDevice
|
35 | app.post '/authenticate', @authenticateController.check
|
36 | app.post '/claimdevice/:uuid', @deviceV2Controller.claimdevice
|
37 | app.get '/devices', @searchDeviceController.searchV1
|
38 | app.post '/devices', @registerDeviceController.register
|
39 | app.put '/devices/:uuid', @deviceV2Controller.update
|
40 | app.get '/devices/:uuid', @deviceV1Controller.get
|
41 | app.delete '/devices/:uuid', @unregisterDeviceController.unregister
|
42 | app.delete '/devices/:uuid/tokens', @tokenController.revokeByQuery
|
43 | app.get '/devices/:uuid/publickey', @deviceV1Controller.getPublicKey
|
44 | app.post '/messages', @messagesController.create
|
45 | app.get '/mydevices', @searchDeviceController.mydevices
|
46 | app.get '/publickey', @globalPublicKeyController.get
|
47 | app.post '/search/devices', @searchDeviceController.searchV3
|
48 | app.get '/status', @statusController.get
|
49 | app.get '/subscribe*', (req, res) =>
|
50 | proto = req.header('x-forwarded-proto') ? 'https'
|
51 | host = 'meshblu-http-streaming.octoblu.com'
|
52 | url = "#{proto}://#{host}#{req.url}"
|
53 | res.redirect(301, url)
|
54 | app.get '/v2/devices', @searchDeviceController.searchV2
|
55 | app.get '/v2/devices/:uuid', @deviceV2Controller.get
|
56 | app.patch '/v2/devices/:uuid', @deviceV2Controller.update
|
57 | app.put '/v2/devices/:uuid', @deviceV2Controller.updateDangerously
|
58 | app.get '/v2/devices/:uuid/subscriptions', @subscriptionsController.list
|
59 | app.post '/v2/devices/:subscriberUuid/subscriptions/:emitterUuid/:type', @subscriptionsController.create
|
60 | app.delete '/v2/devices/:subscriberUuid/subscriptions/:emitterUuid/:type', @subscriptionsController.remove
|
61 | app.get '/v3/devices/:uuid', @deviceV3Controller.get
|
62 | app.get '/v2/whoami', @whoamiController.show
|
63 |
|
64 | module.exports = Router
|