diff --git a/apps/rebreak-magic/app/pages/status.vue b/apps/rebreak-magic/app/pages/status.vue
index 7c6b19a..7c8add7 100644
--- a/apps/rebreak-magic/app/pages/status.vue
+++ b/apps/rebreak-magic/app/pages/status.vue
@@ -86,12 +86,11 @@
- Dieses Gerät ist nicht registriert
- Füge es hinzu, um den Schutz zu aktivieren.
-
- iPhone / iPad
- Diesen Computer
-
+ Dieses Gerät ist nicht geschützt
+ Aktiviere den Schutz für das Gerät, auf dem Magic läuft.
+
+ Dieses Gerät schützen
+
@@ -133,29 +132,6 @@
-
-
-
- iPhone / iPad hinzufügen
-
-
- Diesen Computer schützen
-
-
,
#[serde(rename = "releaseAvailableAt")]
pub release_available_at: Option,
- #[serde(rename = "cooldownUntil")]
+ #[serde(default, rename = "cooldownUntil")]
pub cooldown_until: Option,
+ #[serde(default = "default_active_status")]
pub status: String,
- #[serde(rename = "lastSeenAt")]
+ #[serde(default, rename = "lastSeenAt")]
pub last_seen_at: Option,
}
+fn default_active_status() -> String {
+ "active".to_string()
+}
+
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct StatusResponse {
pub active: bool,
@@ -338,17 +343,19 @@ impl MagicApiClient {
response: reqwest::Response,
) -> AppResult {
let status = response.status();
+ let body = response
+ .text()
+ .await
+ .unwrap_or_else(|_| "".to_string());
if status.is_success() {
- response
- .json::()
- .await
- .map_err(|e| AppError::new(format!("Failed to parse response: {}", e)))
+ serde_json::from_str::(&body).map_err(|e| {
+ AppError::new(format!(
+ "Failed to parse response: {} | body={}",
+ e, body
+ ))
+ })
} else {
- let text = response
- .text()
- .await
- .unwrap_or_else(|_| "Unknown error".to_string());
- Err(AppError::new(format!("HTTP {}: {}", status, text)))
+ Err(AppError::new(format!("HTTP {}: {}", status, body)))
}
}
}