Add a route to get the list of supported platforms for OTA

This commit is contained in:
Pierre HUBERT 2024-10-05 13:03:30 +02:00
parent 382c44a18a
commit e1a94acdcb
6 changed files with 19 additions and 1 deletions

View File

@ -4,5 +4,6 @@ pub mod crypto;
pub mod devices;
pub mod energy;
pub mod logs;
pub mod ota;
pub mod server;
pub mod utils;

View File

@ -0,0 +1 @@
pub mod ota_update;

View File

@ -0,0 +1,5 @@
#[derive(serde::Serialize, serde::Deserialize, Debug, Copy, Clone, Eq, PartialEq)]
pub enum OTAPlatform {
#[serde(rename = "Wt32-Eth01")]
Wt32Eth01,
}

View File

@ -181,7 +181,10 @@ pub async fn secure_server(energy_actor: EnergyActorAddr) -> anyhow::Result<()>
web::delete().to(devices_controller::delete_device),
)
// OTA API
// TODO : list supported platform references
.route(
"/web_api/ota/supported_platforms",
web::get().to(ota_controller::supported_platforms),
)
// TODO : upload a new software update
// TODO : list ota software update per platform
// TODO : download a OTA file

View File

@ -2,5 +2,6 @@ pub mod auth_controller;
pub mod devices_controller;
pub mod energy_controller;
pub mod logging_controller;
pub mod ota_controller;
pub mod relays_controller;
pub mod server_controller;

View File

@ -0,0 +1,7 @@
use crate::ota::ota_update::OTAPlatform;
use crate::server::custom_error::HttpResult;
use actix_web::HttpResponse;
pub async fn supported_platforms() -> HttpResult {
Ok(HttpResponse::Ok().json(vec![OTAPlatform::Wt32Eth01]))
}