diff options
| author | Joris Guyonvarch | 2026-04-18 11:04:47 +0200 |
|---|---|---|
| committer | Joris Guyonvarch | 2026-04-18 11:05:17 +0200 |
| commit | 6d1300640051baa23360846197b54e1e69ae32e3 (patch) | |
| tree | 46219dcf5b5c9e5da0920ffd966d49ba80947a9b /src/validation/balancing.rs | |
| parent | b35589eb90f2e5ee5521964e64eb578e9eb99032 (diff) | |
Add balancing capabilities
If payment are too unbalanced, it’s easier to make a transfer.
Diffstat (limited to 'src/validation/balancing.rs')
| -rw-r--r-- | src/validation/balancing.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/validation/balancing.rs b/src/validation/balancing.rs new file mode 100644 index 0000000..8892bca --- /dev/null +++ b/src/validation/balancing.rs @@ -0,0 +1,34 @@ +use std::collections::HashMap; + +use crate::model::balancing::{Create, Update}; +use crate::validation::utils::*; + +pub fn create(form: &HashMap<String, String>) -> Option<Create> { + let source = parse::<i64>(form, "source")?; + let destination = parse::<i64>(form, "destination")?; + + if source == destination { + None + } else { + Some(Create { + source, + destination, + amount: parse::<i64>(form, "amount")? + }) + } +} + +pub fn update(form: &HashMap<String, String>) -> Option<Update> { + let source = parse::<i64>(form, "source")?; + let destination = parse::<i64>(form, "destination")?; + + if source == destination { + None + } else { + Some(Update { + source, + destination, + amount: parse::<i64>(form, "amount")? + }) + } +} |
