Skip to content

Commit

Permalink
fix builds.json API and make it backwards compatible
Browse files Browse the repository at this point in the history
  • Loading branch information
syphar committed Mar 10, 2024
1 parent c2a7f8c commit 4e385ae
Showing 1 changed file with 29 additions and 1 deletion.
30 changes: 29 additions & 1 deletion src/web/builds.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,28 @@ pub(crate) async fn build_list_json_handler(
Ok((
Extension(CachePolicy::NoStoreMustRevalidate),
[(ACCESS_CONTROL_ALLOW_ORIGIN, "*")],
Json(get_builds(&mut conn, &name, &version).await?),
Json(
get_builds(&mut conn, &name, &version)
.await?
.iter()
.filter_map(|build| {
// for backwards compatibility in this API, we
// * filter out in-progress builds
// * convert the build status to a boolean
if build.build_status != BuildStatus::InProgress {
Some(serde_json::json!({
"id": build.id,
"rustc_version": build.rustc_version,
"docsrs_version": build.docsrs_version,
"build_status": build.build_status.is_success(),
"build_time": build.build_time,
}))
} else {
None
}
})
.collect::<Vec<_>>(),
),
)
.into_response())
}
Expand Down Expand Up @@ -117,6 +138,7 @@ async fn get_builds(

#[cfg(test)]
mod tests {
use super::BuildStatus;
use crate::{
test::{assert_cache_control, wrapper, FakeBuild},
web::cache::CachePolicy,
Expand Down Expand Up @@ -183,13 +205,19 @@ mod tests {
FakeBuild::default()
.rustc_version("rustc (blabla 2021-01-01)")
.docsrs_version("docs.rs 3.0.0"),
FakeBuild::default()
.build_status(BuildStatus::InProgress)
.rustc_version("rustc (blabla 2022-01-01)")
.docsrs_version("docs.rs 4.0.0"),
])
.create()?;

let response = env.frontend().get("/crate/foo/0.1.0/builds.json").send()?;
assert_cache_control(&response, CachePolicy::NoStoreMustRevalidate, &env.config());
let value: serde_json::Value = serde_json::from_str(&response.text()?)?;

assert_eq!(value.as_array().unwrap().len(), 3);

assert_eq!(value.pointer("/0/build_status"), Some(&true.into()));
assert_eq!(
value.pointer("/0/docsrs_version"),
Expand Down

0 comments on commit 4e385ae

Please sign in to comment.