Fix guild info balance decoding

This commit is contained in:
Claude committed 2026-09-30 18:06:59 +00:00
1 parent badb5fccc0
commit c4a222451c
2 files changed
+3 -2

No files matched your search

+1 -1
View File
@@ -222,7 +222,7 @@ pub async fn guild(GameServer(server): GameServer, State(state): State<AppState>
sqlx::query_as("SELECT name, tag, description, leader_uuid, created_at FROM guilds WHERE id = ?").bind(&id).fetch_one(&state.db).await?; sqlx::query_as("SELECT name, tag, description, leader_uuid, created_at FROM guilds WHERE id = ?").bind(&id).fetch_one(&state.db).await?;
let members: Vec<(String, String, String)> = sqlx::query_as("SELECT uuid, name, role FROM guild_members WHERE guild_id = ? ORDER BY joined_at").bind(&id).fetch_all(&state.db).await?; let members: Vec<(String, String, String)> = sqlx::query_as("SELECT uuid, name, role FROM guild_members WHERE guild_id = ? ORDER BY joined_at").bind(&id).fetch_all(&state.db).await?;
let claims: i64 = sqlx::query_scalar("SELECT COUNT(*) FROM guild_claims WHERE guild_id = ? AND server_id = ?").bind(&id).bind(server.id).fetch_one(&state.db).await?; let claims: i64 = sqlx::query_scalar("SELECT COUNT(*) FROM guild_claims WHERE guild_id = ? AND server_id = ?").bind(&id).bind(server.id).fetch_one(&state.db).await?;
let balance: f64 = sqlx::query_scalar("SELECT COALESCE((SELECT balance FROM guild_wallets WHERE guild_id = ? AND server_id = ?), 0)").bind(&id).bind(server.id).fetch_one(&state.db).await?; let balance: f64 = sqlx::query_scalar("SELECT COALESCE((SELECT balance FROM guild_wallets WHERE guild_id = ? AND server_id = ?), 0.0)").bind(&id).bind(server.id).fetch_one(&state.db).await?;
Ok(Json(json!({ Ok(Json(json!({
"exists": true, "id": id, "name": name, "tag": tag, "description": desc, "leader": leader, "created": created, "exists": true, "id": id, "name": name, "tag": tag, "description": desc, "leader": leader, "created": created,
"claims": claims, "balance": balance, "claims": claims, "balance": balance,
+2 -1
View File
@@ -77,7 +77,8 @@ async fn plugins_read_players_and_change_progress() {
t.call("POST", "/api/v1/friends/respond", Some(&tokens[1]), Some(json!({"target_uuid": steve, "accept": true}))).await; t.call("POST", "/api/v1/friends/respond", Some(&tokens[1]), Some(json!({"target_uuid": steve, "accept": true}))).await;
let (_, f) = call("player/friends", json!({"uuid": steve})).await; let (_, f) = call("player/friends", json!({"uuid": steve})).await;
assert_eq!((f["friends"][0]["name"].as_str(), f["friends"][0]["uuid"].as_str()), (Some("Alex"), Some(alex.as_str()))); assert_eq!((f["friends"][0]["name"].as_str(), f["friends"][0]["uuid"].as_str()), (Some("Alex"), Some(alex.as_str())));
let (_, gi) = call("guild/info", json!({"guild": "iron"})).await; let (gs, gi) = call("guild/info", json!({"guild": "iron"})).await;
assert_eq!(gs, StatusCode::OK, "{gi}");
assert_eq!((gi["exists"].clone(), gi["name"].as_str(), gi["members"][0]["name"].as_str()), (json!(true), Some("Iron"), Some("Steve"))); assert_eq!((gi["exists"].clone(), gi["name"].as_str(), gi["members"][0]["name"].as_str()), (json!(true), Some("Iron"), Some("Steve")));
let (_, by_member) = call("guild/info", json!({"member": steve})).await; let (_, by_member) = call("guild/info", json!({"member": steve})).await;
assert_eq!(by_member["id"], g["id"]); assert_eq!(by_member["id"], g["id"]);