1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
pub mod manager;
pub mod protocols;

// The Server module consists of a manager and all available layers that provide access to internal services.
//
// Manager:
// The Manager module requires a DeviceManagerHandler, which will be used to forward all incoming requests.
// This allows the Manager to receive and process requests from RestAPI and WebSocket methods.
// The requests are forwarded to the DeviceManager using the server's AppData, which holds a clone of the DeviceManager's Handler and will provide the responses.
//
// Front-end:
// The frontend provides access to REST API documentation through {address}/docs with a Swagger interface and the API specifications.
//
// RestAPI:
// The REST API will have a default route and versioned routes.
// To keep the application stable through updates, users can use {address}/v{x}/route.
//
// WebSocket:
// WebSocket is provided via the {address}/ws route.
// Users can use the following queries:
//     ?filter="some_desired_string_to_use_regex"
//     ?device-number="00000000-0000-0000-b9c0-f5752d453eb3" // The UUID provided by the source of the device created
// Otherwise, if they are not defined, the WebSocket channel will receive all available messages.
// All operations made through REST API and WebSocket routes will be broadcast to all clients subscribed to device-number=null (default),
// except for errors, which are forwarded directly to the requester.