fix(api): replace async block in Option::and_then with match for proper await
This commit is contained in:
parent
033cfda6c5
commit
dc193a061a
@ -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(
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user