INNER CODE UNIT · Rust
client_account_tx
zly2006/zhihu-plus-plus · aigc-vote-server/src/lib.rs:1029
async fn client_account_tx(
tx: &mut Transaction<'_, Postgres>,
client_id: &str,
lock: bool,
) -> Result<ClientAccount, ServiceError> {
let sql = if lock {
"SELECT credit, progress FROM clients WHERE id = $1 FOR UPDATE"
} else {
"SELECT credit, progress FROM clients WHERE id = $1"
};
let row = sqlx::query(sql)
.bind(client_id)
.fetch_one(&mut **tx)
.await?;
Ok(ClientAccount {
credit: row.try_get("credit")?,
progress: row.try_get("progress")?,
})