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