All checks were successful
continuous-integration/drone/push Build is passing
23 lines
745 B
Rust
23 lines
745 B
Rust
use crate::logs::logs_manager;
|
|
use crate::logs::severity::LogSeverity;
|
|
use crate::server::WebEnergyActor;
|
|
use crate::server::custom_error::HttpResult;
|
|
use crate::server::devices_api::jwt_parser::JWTRequest;
|
|
use actix_web::{HttpResponse, web};
|
|
|
|
#[derive(Debug, serde::Deserialize)]
|
|
pub struct LogRequest {
|
|
severity: LogSeverity,
|
|
message: String,
|
|
}
|
|
|
|
/// Report log message from device
|
|
pub async fn report_log(body: web::Json<JWTRequest>, actor: WebEnergyActor) -> HttpResult {
|
|
let (device, request) = body.parse_jwt::<LogRequest>(actor).await?;
|
|
|
|
log::info!("Save log message from device: {request:#?}");
|
|
logs_manager::save_log(Some(&device.id), request.severity, request.message)?;
|
|
|
|
Ok(HttpResponse::Accepted().finish())
|
|
}
|