diff options
| author | Benedict Börger <benedict@0xb8000.de> | 2019-04-27 22:03:20 +0200 |
|---|---|---|
| committer | Benedict Börger <benedict@0xb8000.de> | 2019-04-27 22:03:20 +0200 |
| commit | 36716cf5a971811019280614f8d6ea68c91cdba8 (patch) | |
| tree | 94666c35227f9b85c6486a3fc827b08fb0b8b835 /src/web_frontend/chart.rs | |
| parent | ef11513f9385b3fb6b52eb90cf873a17f2a1d90b (diff) | |
[web_frontend] adapt URLs to be ablte to address spefic accounts
Diffstat (limited to 'src/web_frontend/chart.rs')
| -rw-r--r-- | src/web_frontend/chart.rs | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/web_frontend/chart.rs b/src/web_frontend/chart.rs index ed593dd..43ec3eb 100644 --- a/src/web_frontend/chart.rs +++ b/src/web_frontend/chart.rs @@ -23,8 +23,9 @@ struct ChartContext { } -#[get("/chart?<start>&<end>")] -pub fn chart_handler(start : Option<&RawStr>, end : Option<&RawStr>) -> rocket_contrib::templates::Template { +#[get("/chart/<account>?<start>&<end>")] +pub fn chart_handler(account : &RawStr, start : Option<&RawStr>, end : Option<&RawStr>) -> rocket_contrib::templates::Template { + let account_name = account.to_string(); let date_start = match start { Some(s) => { let mut tmp = s.to_string(); tmp.push_str("-01"); @@ -40,7 +41,7 @@ pub fn chart_handler(start : Option<&RawStr>, end : Option<&RawStr>) -> rocket_c let date_range = crate::web_frontend::util::DateRange::new(date_start, date_end); let asset_ini = "data/asset.ini"; let asset = crate::banking::asset::Asset::from_ini_file(asset_ini); - let account = asset.get_account_by_name("Girokonto"); + let account = asset.get_account_by_name(&account_name); let acc; match account { Some(trans) => acc = trans, @@ -55,12 +56,12 @@ pub fn chart_handler(start : Option<&RawStr>, end : Option<&RawStr>) -> rocket_c } let mut groups = HashMap::new(); - let t = acc.transactions; + let t = acc.transactions; // filter transaction to match only the specified timeframe println!("unfiltered number: {}", t.len()); let mut t_filtered = Vec::new(); for date in date_range { - let mut tmp : Vec<_> = t.iter().filter(|x| x.date.month() == date.month()).collect(); + let mut tmp : Vec<_> = t.iter().filter(|x| x.date.month() == date.month() && x.date.year() == date.year()).collect(); t_filtered.append(& mut tmp); } @@ -88,7 +89,7 @@ pub fn chart_handler(start : Option<&RawStr>, end : Option<&RawStr>) -> rocket_c total_chart = total_chart + complete; // ALSO INSERT OTHER, AKA THE REST } - let context = ChartContext { account_name : String::from("Girokonto"), + let context = ChartContext { account_name : account_name, groups : groups, total_sum : total_sum, total_chart : total_chart, date_start : date_start.to_string()[0..7].to_string(), date_end : date_end.to_string()[0..7].to_string() }; |
