diff options
-rw-r--r-- | license-generator/src/lib.rs | 2 | ||||
-rw-r--r-- | license-generator/src/main.rs | 54 | ||||
-rw-r--r-- | license-generator/src/response.rs | 12 |
3 files changed, 25 insertions, 43 deletions
diff --git a/license-generator/src/lib.rs b/license-generator/src/lib.rs index f83dbbf..3e8ae4b 100644 --- a/license-generator/src/lib.rs +++ b/license-generator/src/lib.rs @@ -1,5 +1,7 @@ #[macro_use] extern crate error_chain; + +#[macro_use] extern crate log; extern crate mysql; extern crate paddle; diff --git a/license-generator/src/main.rs b/license-generator/src/main.rs index 8e60d51..f2beb26 100644 --- a/license-generator/src/main.rs +++ b/license-generator/src/main.rs @@ -87,13 +87,7 @@ fn main() -> Result<()> { } }, None => { - response::set_500(&mut req.stdout()).unwrap_or(()); - write!(&mut req.stdout(), "Content-Type: text/plain - -500 Internal Server Error") - .unwrap_or(()); - - return; + return response::error_500(&mut req.stdout(), None); }, }; @@ -101,15 +95,7 @@ fn main() -> Result<()> { let is_verified = match request::verified(&ps) { Ok(v) => v, Err(e) => { - error!("{}", e); - - response::set_500(&mut req.stdout()).unwrap_or(()); - write!(&mut req.stdout(), "Content-Type: text/plain - -500 Internal Server Error") - .unwrap_or(()); - - return; + return response::error_500(&mut req.stdout(), Some(e)); }, }; @@ -123,15 +109,10 @@ fn main() -> Result<()> { let mut cx = match pool.get_conn() { Ok(cx) => cx, Err(e) => { - error!("{}", e); - - response::set_500(&mut req.stdout()).unwrap_or(()); - write!(&mut req.stdout(), "Content-Type: text/plain - -500 Internal Server Error") - .unwrap_or(()); - - return; + return response::error_500( + &mut req.stdout(), + Some(e.into()) + ); }, }; @@ -147,28 +128,15 @@ fn main() -> Result<()> { return; }, Err(e) => { - error!("{}", e); - - response::set_500(&mut req.stdout()).unwrap_or(()); - write!(&mut req.stdout(), "Content-Type: text/plain - -500 Internal Server Error") - .unwrap_or(()); - - return; + return response::error_500(&mut req.stdout(), Some(e)); }, } } - error!("Purchaser name or email not set"); - - response::set_500(&mut req.stdout()).unwrap_or(()); - write!(&mut req.stdout(), "Content-Type: text/plain - -500 Internal Server Error") - .unwrap_or(()); - - return; + return response::error_500( + &mut req.stdout(), + Some("Purchaser name or email not set".into()) + ); } response::set_403(&mut req.stdout()).unwrap_or(()); diff --git a/license-generator/src/response.rs b/license-generator/src/response.rs index 701bf1a..aec2d22 100644 --- a/license-generator/src/response.rs +++ b/license-generator/src/response.rs @@ -19,3 +19,15 @@ Allow: {}", pub fn set_500<W: Write>(w: &mut W) -> Result<()> { Ok(writeln!(w, "Status: 500")?) } + +pub fn error_500<W: Write>(w: &mut W, error: Option<Error>) { + if let Some(error) = error { + error!("{}", error); + } + + set_500(w).unwrap_or(()); + write!(w, "Content-Type: text/plain + +500 Internal Server Error") + .unwrap_or(()); +} |