diff options
author | Teddy Wing | 2018-11-09 17:40:25 +0100 |
---|---|---|
committer | Teddy Wing | 2018-11-09 17:40:25 +0100 |
commit | 51e3dd528919599c3d2beff56c59a4cb7fe24371 (patch) | |
tree | 6722d3b2ef4b57267380e83396456697142800da /license-generator/src/lib.rs | |
parent | 0644f4f05552e4e0eca28a933e99123df50b1dc1 (diff) | |
download | dome-key-web-51e3dd528919599c3d2beff56c59a4cb7fe24371.tar.bz2 |
Extract code in `lib.rs` to `errors.rs` and `purchaser.rs`
Split up the code to get things a bit more organised. I want a function
to create a connection to the MySQL database and I don't want to lump it
in with the rest.
Diffstat (limited to 'license-generator/src/lib.rs')
-rw-r--r-- | license-generator/src/lib.rs | 71 |
1 files changed, 2 insertions, 69 deletions
diff --git a/license-generator/src/lib.rs b/license-generator/src/lib.rs index d15a9cc..fd1bfa8 100644 --- a/license-generator/src/lib.rs +++ b/license-generator/src/lib.rs @@ -4,73 +4,6 @@ extern crate mysql; extern crate rand; extern crate sha1; -mod errors { - use mysql; - error_chain! { - foreign_links { - MySql(mysql::error::Error); - } - } -} - -use rand::Rng; - -use errors::*; - -struct Purchaser<'a> { - name: &'a str, - email: &'a str, - secret: Option<String>, -} - -impl<'a> Purchaser<'a> { - fn new(name: &'a str, email: &'a str) -> Self { - Purchaser { - name: name, - email: email, - secret: None, - } - } - - fn generate_secret(&mut self) { - let mut rng = rand::thread_rng(); - let random: usize = rng.gen_range(1_000_000_000, std::usize::MAX); - - let source = format!("{}{}{}", self.name, self.email, random); - let digest = sha1::Sha1::from(source).hexdigest(); - - self.secret = Some(digest); - } - - fn insert(&self, cx: &mut mysql::Conn) -> Result<()> { - let mut tx = cx.start_transaction( - false, // consistent_snapshot - None, // isolation_level - None, // readonly - )?; - - match self.secret { - Some(ref s) => { - tx.prep_exec(" - INSERT INTO purchasers - (name, email, secret) - VALUES - (?, ?, ?)", - (self.name, self.email, s), - )?; - }, - None => { - tx.prep_exec(" - INSERT INTO purchasers - (name, email) - VALUES - (?, ?)", - (self.name, self.email), - )?; - }, - } - - Ok(()) - } -} +mod errors; +mod purchaser; |