diff options
| -rw-r--r-- | license-generator/src/errors.rs | 7 | ||||
| -rw-r--r-- | license-generator/src/lib.rs | 71 | ||||
| -rw-r--r-- | license-generator/src/purchaser.rs | 62 | 
3 files changed, 71 insertions, 69 deletions
| diff --git a/license-generator/src/errors.rs b/license-generator/src/errors.rs new file mode 100644 index 0000000..7eb9eda --- /dev/null +++ b/license-generator/src/errors.rs @@ -0,0 +1,7 @@ +use mysql; + +error_chain! { +    foreign_links { +        MySql(mysql::error::Error); +    } +} 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; diff --git a/license-generator/src/purchaser.rs b/license-generator/src/purchaser.rs new file mode 100644 index 0000000..2a7727c --- /dev/null +++ b/license-generator/src/purchaser.rs @@ -0,0 +1,62 @@ +use mysql; +use rand::{self, Rng}; +use sha1; + +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(()) +    } +} | 
