aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2018-11-11 01:12:38 +0100
committerTeddy Wing2018-11-11 01:47:52 +0100
commite17cffd340476470546e5c27ff03fa134b6e2236 (patch)
tree01b7911843f72eca8116874e6a853734907e39dd
parentf1c118535292fd7aba240713a4b869e00eaccc27 (diff)
downloaddome-key-web-e17cffd340476470546e5c27ff03fa134b6e2236.tar.bz2
main(): Get a map of POST params
Move the call to `params::parse()` from `request::verified()` into `main()`. This enables us to access values from POST params inside the `main()` function. We'll need this to store purchaser name and email address.
-rw-r--r--license-generator/src/lib.rs3
-rw-r--r--license-generator/src/main.rs4
-rw-r--r--license-generator/src/params.rs2
-rw-r--r--license-generator/src/request.rs11
4 files changed, 12 insertions, 8 deletions
diff --git a/license-generator/src/lib.rs b/license-generator/src/lib.rs
index 407097a..f83dbbf 100644
--- a/license-generator/src/lib.rs
+++ b/license-generator/src/lib.rs
@@ -8,10 +8,9 @@ extern crate sha1;
extern crate url;
-mod params;
-
pub mod database;
pub mod errors;
+pub mod params;
pub mod purchaser;
pub mod request;
pub mod response;
diff --git a/license-generator/src/main.rs b/license-generator/src/main.rs
index 4e47c33..3fe03ed 100644
--- a/license-generator/src/main.rs
+++ b/license-generator/src/main.rs
@@ -15,6 +15,7 @@ use simplelog::{Config, LevelFilter, WriteLogger};
use license_generator::database;
use license_generator::errors::*;
+use license_generator::params;
use license_generator::purchaser::Purchaser;
use license_generator::request;
use license_generator::response;
@@ -102,7 +103,8 @@ fn main() -> Result<()> {
},
};
- let is_verified = match request::verified(&params) {
+ let ps = params::parse(&params);
+ let is_verified = match request::verified(&ps) {
Ok(v) => v,
Err(e) => {
error!("{}", e);
diff --git a/license-generator/src/params.rs b/license-generator/src/params.rs
index 1b234e7..836e920 100644
--- a/license-generator/src/params.rs
+++ b/license-generator/src/params.rs
@@ -3,7 +3,7 @@ use std::collections::BTreeMap;
use url::form_urlencoded;
-pub(crate) fn parse<'a>(params: &'a str) -> BTreeMap<Cow<'a, str>, Cow<'a, str>> {
+pub fn parse<'a>(params: &'a str) -> BTreeMap<Cow<'a, str>, Cow<'a, str>> {
let iter = form_urlencoded::parse(params.as_bytes());
let mut dict = BTreeMap::new();
diff --git a/license-generator/src/request.rs b/license-generator/src/request.rs
index 190a756..fd5b556 100644
--- a/license-generator/src/request.rs
+++ b/license-generator/src/request.rs
@@ -1,11 +1,14 @@
+use std::borrow::Cow;
+use std::collections::BTreeMap;
+
use paddle;
use errors::*;
-use params;
-pub fn verified(req_params: &str) -> Result<bool> {
- let p = params::parse(&req_params);
+pub fn verified<'a>(
+ req_params: &BTreeMap<Cow<'a, str>, Cow<'a, str>>
+) -> Result<bool> {
let pem = include_bytes!("../private/paddle.pubkey.asc");
- Ok(paddle::verify_signature(pem, p)?)
+ Ok(paddle::verify_signature(pem, req_params.clone())?)
}