Rustfmt
This commit is contained in:
+12
-16
@@ -15,28 +15,24 @@ pub async fn insert(db: &DatabaseConnection, insertions: Vec<Insertion>) -> Resu
|
||||
for insertions in insertions.chunks(400) {
|
||||
let tx = db.begin().await?;
|
||||
|
||||
transaction::Entity::insert_many(
|
||||
insertions.iter().map(|i| &i.transaction).cloned(),
|
||||
)
|
||||
.on_conflict(
|
||||
OnConflict::column(transaction::Column::Id)
|
||||
.update_columns(transaction::Column::iter())
|
||||
.to_owned(),
|
||||
)
|
||||
.exec(&tx)
|
||||
.await?;
|
||||
transaction::Entity::insert_many(insertions.iter().map(|i| &i.transaction).cloned())
|
||||
.on_conflict(
|
||||
OnConflict::column(transaction::Column::Id)
|
||||
.update_columns(transaction::Column::iter())
|
||||
.to_owned(),
|
||||
)
|
||||
.exec(&tx)
|
||||
.await?;
|
||||
|
||||
// Expenditures can change as we recagegorise them, so we delete all the old ones and insert
|
||||
// an entirely new set to ensure we don't end up leaving old ones around.
|
||||
expenditure::Entity::delete_many()
|
||||
.filter(
|
||||
expenditure::Column::TransactionId.is_in(
|
||||
insertions
|
||||
.iter()
|
||||
.map(|i| i.transaction.id.as_ref()),
|
||||
),
|
||||
expenditure::Column::TransactionId
|
||||
.is_in(insertions.iter().map(|i| i.transaction.id.as_ref())),
|
||||
)
|
||||
.exec(&tx).await?;
|
||||
.exec(&tx)
|
||||
.await?;
|
||||
|
||||
expenditure::Entity::insert_many(
|
||||
insertions
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
use crate::ingestion::db::Insertion;
|
||||
use anyhow::Context;
|
||||
use chrono::{DateTime, NaiveDate, NaiveDateTime, NaiveTime};
|
||||
use csv::StringRecord;
|
||||
use entity::expenditure::ActiveModel;
|
||||
use entity::transaction;
|
||||
use num_traits::FromPrimitive;
|
||||
use sea_orm::prelude::Decimal;
|
||||
use sea_orm::ActiveValue::*;
|
||||
use sea_orm::IntoActiveModel;
|
||||
use crate::ingestion::db::Insertion;
|
||||
use csv::StringRecord;
|
||||
|
||||
#[allow(dead_code)]
|
||||
mod headings {
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
pub mod db;
|
||||
pub mod routes;
|
||||
pub mod ingestion_logic;
|
||||
pub mod routes;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
use crate::error::AppError;
|
||||
use crate::ingestion::db;
|
||||
use crate::ingestion::ingestion_logic::{from_csv_row, from_json_row};
|
||||
use anyhow::anyhow;
|
||||
use axum::extract::{Extension, Json, Multipart};
|
||||
use sea_orm::DatabaseConnection;
|
||||
use serde_json::Value;
|
||||
use std::io::Cursor;
|
||||
use crate::error::AppError;
|
||||
use crate::ingestion::db;
|
||||
use crate::ingestion::ingestion_logic::{from_csv_row, from_json_row};
|
||||
|
||||
pub async fn monzo_updated(
|
||||
Extension(db): Extension<DatabaseConnection>,
|
||||
|
||||
+8
-9
@@ -1,14 +1,14 @@
|
||||
mod ingestion;
|
||||
mod error;
|
||||
mod ingestion;
|
||||
|
||||
use axum::{Extension, Router};
|
||||
use std::net::SocketAddr;
|
||||
use axum::routing::{get, post};
|
||||
use clap::Parser;
|
||||
use sea_orm::{ConnectionTrait, DatabaseConnection};
|
||||
use migration::{Migrator, MigratorTrait};
|
||||
use crate::error::AppError;
|
||||
use crate::ingestion::routes::{monzo_batched_csv, monzo_batched_json, monzo_updated};
|
||||
use axum::routing::{get, post};
|
||||
use axum::{Extension, Router};
|
||||
use clap::Parser;
|
||||
use migration::{Migrator, MigratorTrait};
|
||||
use sea_orm::{ConnectionTrait, DatabaseConnection};
|
||||
use std::net::SocketAddr;
|
||||
|
||||
#[derive(Debug, clap::Parser)]
|
||||
struct Config {
|
||||
@@ -28,8 +28,7 @@ struct Config {
|
||||
async fn health_check(
|
||||
Extension(db): Extension<DatabaseConnection>,
|
||||
) -> Result<&'static str, AppError> {
|
||||
db.execute_unprepared("SELECT 1")
|
||||
.await?;
|
||||
db.execute_unprepared("SELECT 1").await?;
|
||||
|
||||
Ok("Ok")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user