added sums

This commit is contained in:
Colin McKechney
2023-05-01 00:56:41 -04:00
parent d2127218ee
commit 9a362728e3
2 changed files with 48 additions and 0 deletions

View File

@@ -46,6 +46,21 @@ pub struct ItemResult{
cholesterol_mg: Option<f32> cholesterol_mg: Option<f32>
} }
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct Sums{
calories: f32,
fat_g: f32,
sat_fat_g: f32,
trans_fat_g: f32,
carbs_g: f32,
fiber_g: f32,
sugar_g: f32,
protein_g: f32,
sodium_mg: f32,
potassium_mg: f32,
cholesterol_mg: f32
}
pub async fn week(item: Json<ItemData>) -> impl Responder { pub async fn week(item: Json<ItemData>) -> impl Responder {
let item = item.into_inner(); let item = item.into_inner();
@@ -85,6 +100,35 @@ pub async fn week_lookup(net_id: Path<String>) -> Json<Vec<ItemResult>> {
} }
pub async fn week_sums(net_id: Path<String>) -> Json<Sums> {
let net_id = net_id.into_inner();
let week = match get_week(&net_id) {
Ok(week) => week,
Err(e) => {
error!("failed to grab week info from {}: {}", net_id, e);
return Json(Sums::default());
}
};
let mut sums = Sums::default();
for item in week{
sums.calories += item.calories.unwrap_or_default();
sums.fat_g += item.fat_g.unwrap_or_default();
sums.sat_fat_g += item.sat_fat_g.unwrap_or_default();
sums.trans_fat_g += item.trans_fat_g.unwrap_or_default();
sums.carbs_g += item.carbs_g.unwrap_or_default();
sums.fiber_g += item.fiber_g.unwrap_or_default();
sums.sugar_g += item.sugar_g.unwrap_or_default();
sums.protein_g += item.protein_g.unwrap_or_default();
sums.sodium_mg += item.sodium_mg.unwrap_or_default();
sums.potassium_mg += item.potassium_mg.unwrap_or_default();
sums.cholesterol_mg += item.cholesterol_mg.unwrap_or_default();
}
Json(sums)
}
fn add_item(item: &ItemData) -> Result<()> { fn add_item(item: &ItemData) -> Result<()> {
let conn = Connection::connect(ORACLE_USER, ORACLE_PASS, ORACLE_CON_STR)? ; let conn = Connection::connect(ORACLE_USER, ORACLE_PASS, ORACLE_CON_STR)? ;

View File

@@ -75,6 +75,10 @@ async fn main() -> std::io::Result<()> {
web::resource("/menu_search") web::resource("/menu_search")
.route(web::post().to(api::menu::menu_search)) .route(web::post().to(api::menu::menu_search))
) )
.service(
web::resource("week_sum/{net_id}")
.route(web::get().to(api::week::week_sums))
)
.route("/", web::get().to(api_index)) .route("/", web::get().to(api_index))
) )
.route("/", web::get().to(index)) .route("/", web::get().to(index))