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,16 +336,15 @@ pub fn create_chat_sse_stream(
}
// 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))
.one(service.db.reader())
.await
.ok()
.flatten()
.and_then(|m| {
// Resolve to active/default version for pricing lookup
{
Some(m) => {
let reader = service.db.reader();
async move {
model_version::Entity::find()
.filter(model_version::Column::ModelId.eq(m.id))
.filter(model_version::Column::Status.eq("active"))
@ -357,8 +356,8 @@ pub fn create_chat_sse_stream(
.flatten()
.map(|v| v.id)
}
})
.await;
None => None,
};
if let Some(version_id) = billing_version_id {
match agent::billing::record_ai_usage(