Skip to content

Commit e1f5ecc

Browse files
committed
rework(bugzilla/search): deserialize bugs in a more consistent fashion
1 parent 30c0174 commit e1f5ecc

1 file changed

Lines changed: 9 additions & 5 deletions

File tree

crates/lib/src/service/bugzilla/search.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use futures_util::Stream;
77
use indexmap::IndexSet;
88
use itertools::{Either, Itertools};
99
use serde::{Deserialize, Serialize};
10+
use serde_json::Value;
1011
use serde_with::{DeserializeFromStr, SerializeDisplay, skip_serializing_none};
1112
use strum::{AsRefStr, Display, EnumIter, EnumString};
1213
use url::Url;
@@ -88,13 +89,16 @@ impl RequestPagedStream for Request {
8889
let request = self.service.client().get(url).auth_optional(&self.service);
8990
let response = request.send().await?;
9091
let mut data = self.service.parse_response(response).await?;
92+
let Value::Array(data) = data["bugs"].take() else {
93+
return Err(Error::InvalidResponse("search request".to_string()));
94+
};
95+
9196
let mut bugs = vec![];
92-
if let serde_json::Value::Array(values) = data["bugs"].take() {
93-
for value in values {
94-
let bug = self.service.deserialize_bug(value)?;
95-
bugs.push(bug);
96-
}
97+
for value in data {
98+
let bug = self.service.deserialize_bug(value)?;
99+
bugs.push(bug);
97100
}
101+
98102
Ok(bugs)
99103
}
100104
}

0 commit comments

Comments
 (0)