2024-07-03 19:10:15 +00:00
|
|
|
use crate::devices::device::DeviceId;
|
2024-07-03 17:17:47 +00:00
|
|
|
use crate::energy::energy_actor;
|
|
|
|
use crate::server::custom_error::HttpResult;
|
|
|
|
use crate::server::WebEnergyActor;
|
2024-07-03 19:10:15 +00:00
|
|
|
use actix_web::{web, HttpResponse};
|
2024-07-03 17:17:47 +00:00
|
|
|
|
|
|
|
/// Get the list of pending (not accepted yet) devices
|
|
|
|
pub async fn list_pending(actor: WebEnergyActor) -> HttpResult {
|
|
|
|
let list = actor
|
|
|
|
.send(energy_actor::GetDeviceLists)
|
|
|
|
.await?
|
|
|
|
.into_iter()
|
|
|
|
.filter(|d| !d.validated)
|
|
|
|
.collect::<Vec<_>>();
|
|
|
|
|
|
|
|
Ok(HttpResponse::Ok().json(list))
|
|
|
|
}
|
|
|
|
|
|
|
|
/// Get the list of validated (not accepted yet) devices
|
|
|
|
pub async fn list_validated(actor: WebEnergyActor) -> HttpResult {
|
|
|
|
let list = actor
|
|
|
|
.send(energy_actor::GetDeviceLists)
|
|
|
|
.await?
|
|
|
|
.into_iter()
|
|
|
|
.filter(|d| d.validated)
|
|
|
|
.collect::<Vec<_>>();
|
|
|
|
|
|
|
|
Ok(HttpResponse::Ok().json(list))
|
|
|
|
}
|
2024-07-03 19:10:15 +00:00
|
|
|
|
|
|
|
#[derive(serde::Deserialize)]
|
|
|
|
pub struct DeviceInPath {
|
|
|
|
id: DeviceId,
|
|
|
|
}
|
|
|
|
|
|
|
|
/// Delete a device
|
|
|
|
pub async fn delete_device(actor: WebEnergyActor, id: web::Path<DeviceInPath>) -> HttpResult {
|
|
|
|
actor
|
|
|
|
.send(energy_actor::DeleteDevice(id.id.clone()))
|
|
|
|
.await??;
|
|
|
|
|
|
|
|
Ok(HttpResponse::Accepted().finish())
|
|
|
|
}
|