aboutsummaryrefslogtreecommitdiff
path: root/src/validation/balancing.rs
blob: 3b70eeac6a9e7bf3a0b4d741718a45d7c4c11d7d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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")?,
        })
    }
}