use anyhow::{Context, Result}; use crate::{ models::budget_update::BudgetUpdate, schema::budget_updates::dsl::budget_updates as budget_updates_table, }; use diesel::prelude::*; pub fn insert_budget_updates( budget_updates: &[BudgetUpdate], connection: &mut SqliteConnection, ) -> Result { let num_rows_inserted = diesel::insert_into(budget_updates_table) .values(budget_updates) .execute(connection) .with_context(|| err_msg(budget_updates))?; Ok(num_rows_inserted) } fn err_msg(budget_updates: &[BudgetUpdate]) -> String { format!( "failed to insert budget updates: [{}]", budget_updates .iter() .map(|a| a.id.to_string()) .collect::>() .join(", ") ) }