aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--license-generator/src/main.rs18
-rw-r--r--license-generator/src/response.rs22
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);