Check for loops in relays

This commit is contained in:
2024-08-27 18:38:49 +02:00
parent d890b23670
commit 50e61707cc
3 changed files with 133 additions and 5 deletions

View File

@ -165,6 +165,10 @@ pub async fn secure_server(energy_actor: EnergyActorAddr) -> anyhow::Result<()>
"/web_api/relays/list",
web::get().to(relays_controller::get_list),
)
.route(
"/web_api/relays/create",
web::post().to(relays_controller::create),
)
// Devices API
.route(
"/devices_api/utils/time",

View File

@ -1,10 +1,23 @@
use crate::devices::device::{DeviceId, DeviceRelay};
use crate::energy::energy_actor;
use crate::server::custom_error::HttpResult;
use crate::server::WebEnergyActor;
use actix_web::HttpResponse;
use actix_web::{web, HttpResponse};
/// Get the full list of relays
pub async fn get_list(actor: WebEnergyActor) -> HttpResult {
let list = actor.send(energy_actor::GetRelaysList).await?;
Ok(HttpResponse::Ok().json(list))
}
#[derive(serde::Deserialize)]
pub struct CreateDeviceRelayRequest {
device_id: DeviceId,
#[serde(flatten)]
relay: DeviceRelay,
}
/// Create a new relay
pub async fn create(actor: WebEnergyActor, req: web::Json<CreateDeviceRelayRequest>) -> HttpResult {
todo!()
}