Reduzing cloned items

This commit is contained in:
Marco De Araujo 2025-12-27 08:20:02 -04:00
parent 0de1f9e083
commit 97171b89d5
4 changed files with 9 additions and 7 deletions

View file

@ -30,13 +30,14 @@ pub fn unify_data(status_page: &StatusPageResponse, heartbeat: &HeartbeatRespons
.unwrap_or_default(); .unwrap_or_default();
monitors.push(UnifiedMonitorData { monitors.push(UnifiedMonitorData {
monitor_info: monitor_info.clone(), id: monitor_info.id,
name: monitor_info.name.clone(),
heartbeats, heartbeats,
uptime_data, uptime_data,
}); });
} }
monitors.sort_by(|a, b| a.monitor_info.name.cmp(&b.monitor_info.name)); monitors.sort_by_key(|m| m.id);
groups.push(UnifiedGroupData { groups.push(UnifiedGroupData {
group_info: group.clone(), group_info: group.clone(),

View file

@ -1,9 +1,10 @@
use crate::data::heartbeat::model::{HeartbeatEntry, UptimeData}; use crate::data::heartbeat::model::{HeartbeatEntry, UptimeData};
use crate::data::status_page::model::{MonitorInfo, StatusPageGroup}; use crate::data::status_page::model::{StatusPageGroup};
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct UnifiedMonitorData { pub struct UnifiedMonitorData {
pub monitor_info: MonitorInfo, pub id: u64,
pub name: String,
pub heartbeats: Vec<HeartbeatEntry>, pub heartbeats: Vec<HeartbeatEntry>,
pub uptime_data: Option<UptimeData>, pub uptime_data: Option<UptimeData>,
} }

View file

@ -29,9 +29,9 @@ pub struct StatusPageConfig {
pub struct MonitorInfo { pub struct MonitorInfo {
pub id: u64, pub id: u64,
pub name: String, pub name: String,
#[serde(rename = "sendUrl")] #[serde(skip_deserializing)]
pub send_url: u8, pub send_url: u8,
#[serde(rename = "type")] #[serde(skip_deserializing)]
pub monitor_type: String, pub monitor_type: String,
} }

View file

@ -116,7 +116,7 @@ fn add_monitor_view_state(group: UnifiedGroupData) -> Vec<MonitorViewState> {
.unwrap_or_else(|| t("unknown").to_string()); .unwrap_or_else(|| t("unknown").to_string());
monitors.push(MonitorViewState { monitors.push(MonitorViewState {
name: monitor.monitor_info.name, name: monitor.name,
status, status,
response_time, response_time,
uptime_24h, uptime_24h,