diff options
-rw-r--r-- | license-generator/src/main.rs | 18 | ||||
-rw-r--r-- | license-generator/src/response.rs | 22 |
2 files changed, 27 insertions, 13 deletions
diff --git a/license-generator/src/main.rs b/license-generator/src/main.rs index f2beb26..296db0a 100644 --- a/license-generator/src/main.rs +++ b/license-generator/src/main.rs @@ -76,14 +76,7 @@ fn main() -> Result<()> { match req.param("REQUEST_METHOD") { Some(method) => { if method != "POST" { - response::set_405(&mut req.stdout(), "POST") - .unwrap_or(()); - write!(&mut req.stdout(), "Content-Type: text/plain - -405 Method Not Allowed") - .unwrap_or(()); - - return; + return response::error_405(&mut req.stdout(), "POST"); } }, None => { @@ -139,11 +132,10 @@ fn main() -> Result<()> { ); } - response::set_403(&mut req.stdout()).unwrap_or(()); - write!(&mut req.stdout(), "Content-Type: text/plain - -403 Forbidden: Invalid request signature") - .unwrap_or(()); + response::error_403( + &mut req.stdout(), + Some("Invalid request signature") + ); }); Ok(()) diff --git a/license-generator/src/response.rs b/license-generator/src/response.rs index aec2d22..a4e80bd 100644 --- a/license-generator/src/response.rs +++ b/license-generator/src/response.rs @@ -20,6 +20,28 @@ pub fn set_500<W: Write>(w: &mut W) -> Result<()> { Ok(writeln!(w, "Status: 500")?) } +pub fn error_403<W: Write>(w: &mut W, message: Option<&str>) { + set_403(w).unwrap_or(()); + write!( + w, + "Content-Type: text/plain + +403 Forbidden{}", + message.map_or_else( + || String::new(), + |m| format!(": {}", m) + ) + ).unwrap_or(()); +} + +pub fn error_405<W: Write>(w: &mut W, allowed_methods: &str) { + set_405(w, allowed_methods).unwrap_or(()); + write!(w, "Content-Type: text/plain + +405 Method Not Allowed") + .unwrap_or(()); +} + pub fn error_500<W: Write>(w: &mut W, error: Option<Error>) { if let Some(error) = error { error!("{}", error); |