makes resolve_claims a single transaction

This commit is contained in:
2019-10-27 14:50:49 +01:00
parent 9a3744e340
commit 559ce804a7

View File

@@ -100,6 +100,7 @@ pub fn fetch_claims(conn: &DbConnection) -> QueryResult<Vec<models::Claim>> {
pub fn resolve_claims(conn: &DbConnection) -> QueryResult<()> {
let data = models::claim::Claims(conn).grouped_by_item()?;
dbg!(&data);
conn.transaction(move || {
for (item, mut claims) in data {
if claims.len() > 1 {
// TODO: better sorting mechanism :)
@@ -107,13 +108,12 @@ pub fn resolve_claims(conn: &DbConnection) -> QueryResult<()> {
}
let winner = claims.get(0).expect("Claims should not be empty !");
let player_id = winner.player_id;
conn.transaction(|| {
winner.resolve_claim(conn)?;
models::player::AsPlayer(conn, player_id)
.update_debt(item.sell_value())
})?;
.update_debt(item.sell_value())?;
}
Ok(())
})
}
/// Split up and share group money among selected players