diff options
author | Teddy Wing | 2018-11-13 05:39:15 +0100 |
---|---|---|
committer | Teddy Wing | 2018-11-13 05:39:15 +0100 |
commit | e8f8a6737f6b3a612d6243be94e98dde7071859f (patch) | |
tree | 813fe34e898bacaa6828988aa09fa2363f32b0ce /license-generator/src | |
parent | b02f3aac30557167f8f81c1294094426c34a2c35 (diff) | |
download | dome-key-web-e8f8a6737f6b3a612d6243be94e98dde7071859f.tar.bz2 |
license: Remove `unwrap`s
Respond with a 500 on error.
Add 'aquatic-prime' to `foreign_links` errors to be able to convert it
with `into()`.
Diffstat (limited to 'license-generator/src')
-rw-r--r-- | license-generator/src/bin/license.rs | 35 | ||||
-rw-r--r-- | license-generator/src/errors.rs | 2 | ||||
-rw-r--r-- | license-generator/src/lib.rs | 2 |
3 files changed, 35 insertions, 4 deletions
diff --git a/license-generator/src/bin/license.rs b/license-generator/src/bin/license.rs index aac7ef5..502f98e 100644 --- a/license-generator/src/bin/license.rs +++ b/license-generator/src/bin/license.rs @@ -136,17 +136,44 @@ fn main() -> Result<()> { let email = email.unwrap().to_string(); let secret = secret.unwrap().to_string(); - let purchaser = query_purchaser(&mut cx, &name, &email, &secret).unwrap(); - if purchaser.is_some() { + let purchaser = match query_purchaser(&mut cx, &name, &email, &secret) { + Ok(p) => p, + Err(e) => return response::error_500( + &mut req.stdout(), + Some(e.into()) + ), + }; + + if let Some(purchaser) = purchaser { + match purchaser { + Ok(p) => p, + Err(e) => return response::error_500( + &mut req.stdout(), + Some(e.into()) + ), + }; + let license_data = LicenseData { name: &name, email: &email, }; - let license = aquatic_prime.plist(license_data).unwrap(); + let license = match aquatic_prime.plist(license_data) { + Ok(p) => p, + Err(e) => return response::error_500( + &mut req.stdout(), + Some(e.into()) + ), + }; let mut zip_data = Cursor::new(vec![]); - zip::license(&mut zip_data, license.as_bytes()).unwrap(); + match zip::license(&mut zip_data, license.as_bytes()) { + Ok(p) => p, + Err(e) => return response::error_500( + &mut req.stdout(), + Some(e.into()) + ), + } write!(&mut req.stdout(), "Content-Type: application/zip Content-Disposition: attachment; filename=\"dome-key-license.zip\"\n\n") diff --git a/license-generator/src/errors.rs b/license-generator/src/errors.rs index 352f959..2d1182b 100644 --- a/license-generator/src/errors.rs +++ b/license-generator/src/errors.rs @@ -1,3 +1,4 @@ +use aquatic_prime; use log; use mysql; use paddle; @@ -13,6 +14,7 @@ error_chain! { MySql(mysql::error::Error); Zip(zip_lib::result::ZipError); + AquaticPrime(aquatic_prime::errors::Error); Paddle(paddle::errors::Error); } } diff --git a/license-generator/src/lib.rs b/license-generator/src/lib.rs index 56e2f67..eae9df0 100644 --- a/license-generator/src/lib.rs +++ b/license-generator/src/lib.rs @@ -1,3 +1,5 @@ +extern crate aquatic_prime; + #[macro_use] extern crate error_chain; extern crate fastcgi; |