add server version to /api response

Fixes #171
This commit is contained in:
Scott Lamb 2021-10-27 13:09:20 -07:00
parent 46ac812d3e
commit 4aab6baebb
3 changed files with 4 additions and 0 deletions

View File

@ -86,6 +86,7 @@ The `application/json` response will have a JSON object as follows:
* `timeZoneName`: the name of the IANA time zone the server is using * `timeZoneName`: the name of the IANA time zone the server is using
to divide recordings into days as described further below. to divide recordings into days as described further below.
* `serverVersion`: the version of the server in use, eg `0.7.0`.
* `cameras`: a list of cameras. Each is a JSON object as follows: * `cameras`: a list of cameras. Each is a JSON object as follows:
* `uuid`: in text format * `uuid`: in text format
* `id`: an integer. The client doesn't ever need to send the id * `id`: an integer. The client doesn't ever need to send the id

View File

@ -15,6 +15,8 @@ use uuid::Uuid;
pub struct TopLevel<'a> { pub struct TopLevel<'a> {
pub time_zone_name: &'a str, pub time_zone_name: &'a str,
pub server_version: &'static str,
// Use a custom serializer which presents the map's values as a sequence and includes the // Use a custom serializer which presents the map's values as a sequence and includes the
// "days" and "camera_configs" attributes or not, according to the respective bools. // "days" and "camera_configs" attributes or not, according to the respective bools.
#[serde(serialize_with = "TopLevel::serialize_cameras")] #[serde(serialize_with = "TopLevel::serialize_cameras")]

View File

@ -679,6 +679,7 @@ impl Service {
req, req,
&json::TopLevel { &json::TopLevel {
time_zone_name: &self.time_zone_name, time_zone_name: &self.time_zone_name,
server_version: env!("CARGO_PKG_VERSION"),
cameras: (&db, days, camera_configs), cameras: (&db, days, camera_configs),
user: caller.user, user: caller.user,
signals: (&db, days), signals: (&db, days),