diff options
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; |