Skip to content

Commit 005c315

Browse files
committed
don't show un-deployed releases on homepage
1 parent aec2f9e commit 005c315

File tree

1 file changed

+35
-4
lines changed

1 file changed

+35
-4
lines changed

src/web/releases.rs

+35-4
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ pub(crate) fn get_releases(
6464
limit: i64,
6565
order: Order,
6666
latest_only: bool,
67+
deployed_only: bool,
6768
) -> Vec<Release> {
6869
let offset = (page - 1) * limit;
6970

@@ -104,6 +105,7 @@ pub(crate) fn get_releases(
104105
conn.query(query.as_str(), &[&limit, &offset, &filter_failed])
105106
.unwrap()
106107
.into_iter()
108+
.filter(|row| !deployed_only || !crate_invalidation_pending(&row.get(5)))
107109
.map(|row| Release {
108110
name: row.get(0),
109111
version: row.get(1),
@@ -260,7 +262,14 @@ impl_webpage! {
260262

261263
pub fn home_page(req: &mut Request) -> IronResult<Response> {
262264
let mut conn = extension!(req, Pool).get()?;
263-
let recent_releases = get_releases(&mut conn, 1, RELEASES_IN_HOME, Order::ReleaseTime, true);
265+
let recent_releases = get_releases(
266+
&mut conn,
267+
1,
268+
RELEASES_IN_HOME,
269+
Order::ReleaseTime,
270+
true,
271+
true,
272+
);
264273

265274
HomePage { recent_releases }.into_response(req)
266275
}
@@ -277,7 +286,14 @@ impl_webpage! {
277286

278287
pub fn releases_feed_handler(req: &mut Request) -> IronResult<Response> {
279288
let mut conn = extension!(req, Pool).get()?;
280-
let recent_releases = get_releases(&mut conn, 1, RELEASES_IN_FEED, Order::ReleaseTime, true);
289+
let recent_releases = get_releases(
290+
&mut conn,
291+
1,
292+
RELEASES_IN_FEED,
293+
Order::ReleaseTime,
294+
true,
295+
false,
296+
);
281297

282298
ReleaseFeed { recent_releases }.into_response(req)
283299
}
@@ -340,6 +356,7 @@ fn releases_handler(req: &mut Request, release_type: ReleaseType) -> IronResult<
340356
RELEASES_IN_RELEASES,
341357
release_order,
342358
latest_only,
359+
false,
343360
)
344361
};
345362

@@ -710,6 +727,21 @@ mod tests {
710727
use std::collections::HashSet;
711728
use test_case::test_case;
712729

730+
#[test]
731+
fn get_releases_only_deployed() {
732+
wrapper(|env| {
733+
let db = env.db();
734+
735+
env.fake_release().name("foo").version("1.0.0").create()?;
736+
737+
assert!(
738+
!get_releases(&mut db.conn(), 1, 10, Order::ReleaseTime, true, false).is_empty()
739+
);
740+
assert!(get_releases(&mut db.conn(), 1, 10, Order::ReleaseTime, true, true).is_empty());
741+
Ok(())
742+
})
743+
}
744+
713745
#[test]
714746
fn get_releases_by_stars() {
715747
wrapper(|env| {
@@ -728,7 +760,7 @@ mod tests {
728760
// release without stars will not be shown
729761
env.fake_release().name("baz").version("1.0.0").create()?;
730762

731-
let releases = get_releases(&mut db.conn(), 1, 10, Order::GithubStars, true);
763+
let releases = get_releases(&mut db.conn(), 1, 10, Order::GithubStars, true, false);
732764
assert_eq!(
733765
vec![
734766
"bar", // 20 stars
@@ -739,7 +771,6 @@ mod tests {
739771
.map(|release| release.name.as_str())
740772
.collect::<Vec<_>>(),
741773
);
742-
743774
Ok(())
744775
})
745776
}

0 commit comments

Comments
 (0)