aboutsummaryrefslogtreecommitdiffstats
path: root/license-generator
diff options
context:
space:
mode:
Diffstat (limited to 'license-generator')
-rw-r--r--license-generator/src/errors.rs7
-rw-r--r--license-generator/src/lib.rs71
-rw-r--r--license-generator/src/purchaser.rs62
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(())
+ }
+}