use anyhow::{Context, Result}; use crate::{ models::account::Account, schema::accounts::dsl::accounts as accounts_table, }; use diesel::prelude::*; pub fn insert_accounts( accounts: &[Account], connection: &mut SqliteConnection, ) -> Result { let num_accounts_inserted = diesel::insert_into(accounts_table) .values(accounts) .execute(connection) .with_context(|| err_msg(accounts))?; Ok(num_accounts_inserted) } fn err_msg(accounts: &[Account]) -> String { format!( "failed to insert accounts: [{}]", accounts .iter() .map(|a| format!("\"{}\": \"{}\"", a.id, a.name)) .collect::>() .join(", ") ) }