diff options
| author | Teddy Wing | 2018-11-11 02:11:36 +0100 | 
|---|---|---|
| committer | Teddy Wing | 2018-11-11 02:11:36 +0100 | 
| commit | edf6fceedd9b4169ceb63172c60733ef84d78951 (patch) | |
| tree | 5ff59d7708ad13b68d8a211b10d283a5c9dd972c /license-generator/src | |
| parent | a9f405988052a49ad3ebbe2a5b1f0db80036b2cd (diff) | |
| download | dome-key-web-edf6fceedd9b4169ceb63172c60733ef84d78951.tar.bz2 | |
main(): Extract 500 errors to a function
Clean up the `main()` function by extracting all these similar lines to
a function.
Diffstat (limited to 'license-generator/src')
| -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(()); +} | 
