fix(api): replace async block in Option::and_then with match for proper await

This commit is contained in:
ZhenYi 2026-05-12 16:06:32 +08:00
parent 033cfda6c5
commit dc193a061a

View File

@ -336,29 +336,28 @@ pub fn create_chat_sse_stream(
} }
// Record billing after successful AI response // Record billing after successful AI response
let billing_version_id = model::Entity::find() let billing_version_id = match model::Entity::find()
.filter(model::Column::Name.eq(&model_name)) .filter(model::Column::Name.eq(&model_name))
.one(service.db.reader()) .one(service.db.reader())
.await .await
.ok() .ok()
.flatten() .flatten()
.and_then(|m| { {
// Resolve to active/default version for pricing lookup Some(m) => {
let reader = service.db.reader(); let reader = service.db.reader();
async move { model_version::Entity::find()
model_version::Entity::find() .filter(model_version::Column::ModelId.eq(m.id))
.filter(model_version::Column::ModelId.eq(m.id)) .filter(model_version::Column::Status.eq("active"))
.filter(model_version::Column::Status.eq("active")) .order_by_desc(model_version::Column::IsDefault)
.order_by_desc(model_version::Column::IsDefault) .order_by_desc(model_version::Column::ReleaseDate)
.order_by_desc(model_version::Column::ReleaseDate) .one(reader)
.one(reader) .await
.await .ok()
.ok() .flatten()
.flatten() .map(|v| v.id)
.map(|v| v.id) }
} None => None,
}) };
.await;
if let Some(version_id) = billing_version_id { if let Some(version_id) = billing_version_id {
match agent::billing::record_ai_usage( match agent::billing::record_ai_usage(