From 5d33ed945c5be832d6a6e08eda4e35dde00ac362 Mon Sep 17 00:00:00 2001 From: Benedict Börger Date: Fri, 28 Jun 2019 21:41:23 +0200 Subject: [web_fronted] added new site asset/risk_chart --- src/web_frontend/asset_risk_chart.rs | 47 ++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/web_frontend/asset_risk_chart.rs (limited to 'src/web_frontend/asset_risk_chart.rs') diff --git a/src/web_frontend/asset_risk_chart.rs b/src/web_frontend/asset_risk_chart.rs new file mode 100644 index 0000000..560a6f3 --- /dev/null +++ b/src/web_frontend/asset_risk_chart.rs @@ -0,0 +1,47 @@ +use std::collections::HashMap; +use rocket_contrib::templates::Template; +use crate::parsers::ini::IniFile; +use crate::parsers::csv::CsvFile; +use chrono::Utc; + + +#[derive(Serialize)] +pub struct AssetRiskContext { + risk_category : Vec +} + +#[derive(Serialize)] +pub struct RiskCategory{ + name : String, + balance : f32 +} + +#[get("/asset/risk_chart")] +pub fn asset_risk_chart_handler() -> rocket_contrib::templates::Template { + let asset_file = "data/asset.ini"; + let asset = crate::banking::asset::Asset::from_ini_file(asset_file); + + let mut acc : Vec = Vec::new(); + + let today = Utc::today().naive_utc(); + + for account in asset.iter() { + println!("{}", account.riskCategory); + let mut found = false; + for mut t in &mut acc { + if t.name == account.riskCategory { + found = true; + t.balance = t.balance + account.get_balance(today); + } + } + if !found { + acc.push( RiskCategory { + name : account.riskCategory.to_string(), + balance : account.get_balance(today) + }); + } + } + + let context = AssetRiskContext { risk_category : acc }; + Template::render("asset_risk_chart", context) +} -- cgit v1.2.3-70-g09d2