From f1b94a8b1f7b4d34625fa16504f077fc71b168a4 Mon Sep 17 00:00:00 2001 From: Mathieu Demange Date: Tue, 25 Dec 2018 10:35:21 +0100 Subject: [PATCH] Add /load error support --- src/main.rs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 6b24b00..aa03ec1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,6 +6,7 @@ extern crate serde; use nickel::Nickel; use nickel::MediaType; +use nickel::status::StatusCode; use systemstat::{System, Platform}; //extern crate rustc_serialize; @@ -16,6 +17,12 @@ struct LoadInformation { fifteenMinutes: f32 } +#[derive(Serialize, Deserialize, Debug)] +struct Error { + errorCode: String, + errorMessage: String +} + fn main() { let mut server = Nickel::new(); @@ -46,8 +53,14 @@ fn main() { Err(x) => { - //serde_json::to_string(&result).unwrap() - String::from("Failure") + _res.set(StatusCode::ServiceUnavailable); // HTTP Error 503 + + let result = Error { + errorCode: String::from("E_LOADAVG_UNAVAILABLE"), + errorMessage: String::from("Error while fetching load average from system stats.") + }; + + serde_json::to_string(&result).unwrap() }