Skip to content

Commit fd4c554

Browse files
committed
Revert "Merge pull request #810 from Turbo87/reverse-deps"
This reverts commit 0455a8a, reversing changes made to 1291a87.
1 parent 0455a8a commit fd4c554

File tree

3 files changed

+11
-28
lines changed

3 files changed

+11
-28
lines changed

src/dependency.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ pub struct Dependency {
3030

3131
pub struct ReverseDependency {
3232
dependency: Dependency,
33+
crate_name: String,
3334
crate_downloads: i32,
3435
}
3536

@@ -124,9 +125,9 @@ impl Dependency {
124125
}
125126

126127
impl ReverseDependency {
127-
pub fn encodable(self, crate_name: &str) -> EncodableDependency {
128+
pub fn encodable(self) -> EncodableDependency {
128129
self.dependency.encodable(
129-
crate_name,
130+
&self.crate_name,
130131
Some(self.crate_downloads),
131132
)
132133
}
@@ -217,10 +218,11 @@ impl Queryable<dependencies::SqlType, Pg> for Dependency {
217218
impl Queryable<(dependencies::SqlType, Integer, Text), Pg> for ReverseDependency {
218219
type Row = (<Dependency as Queryable<dependencies::SqlType, Pg>>::Row, i32, String);
219220

220-
fn build((dep_row, downloads, _name): Self::Row) -> Self {
221+
fn build((dep_row, downloads, name): Self::Row) -> Self {
221222
ReverseDependency {
222223
dependency: Dependency::build(dep_row),
223224
crate_downloads: downloads,
225+
crate_name: name,
224226
}
225227
}
226228
}

src/krate.rs

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1543,33 +1543,19 @@ fn modify_owners(req: &mut Request, add: bool) -> CargoResult<Response> {
15431543

15441544
/// Handles the `GET /crates/:crate_id/reverse_dependencies` route.
15451545
pub fn reverse_dependencies(req: &mut Request) -> CargoResult<Response> {
1546-
use diesel::expression::dsl::any;
1547-
15481546
let name = &req.params()["crate_id"];
15491547
let conn = req.db_conn()?;
15501548
let krate = Crate::by_name(name).first::<Crate>(&*conn)?;
15511549
let (offset, limit) = req.pagination(10, 100)?;
15521550
let (rev_deps, total) = krate.reverse_dependencies(&*conn, offset, limit)?;
1553-
let rev_deps: Vec<_> = rev_deps
1554-
.into_iter()
1555-
.map(|dep| dep.encodable(&krate.name))
1556-
.collect();
1557-
1558-
let version_ids: Vec<i32> = rev_deps.iter().map(|dep| dep.version_id).collect();
1559-
1560-
let versions = versions::table
1561-
.filter(versions::id.eq(any(version_ids)))
1562-
.inner_join(crates::table)
1563-
.select((versions::all_columns, crates::name))
1564-
.load::<(Version, String)>(&*conn)?
1551+
let rev_deps = rev_deps
15651552
.into_iter()
1566-
.map(|(version, krate_name)| version.encodable(&krate_name))
1553+
.map(ReverseDependency::encodable)
15671554
.collect();
15681555

15691556
#[derive(RustcEncodable)]
15701557
struct R {
15711558
dependencies: Vec<EncodableDependency>,
1572-
versions: Vec<EncodableVersion>,
15731559
meta: Meta,
15741560
}
15751561
#[derive(RustcEncodable)]
@@ -1578,7 +1564,6 @@ pub fn reverse_dependencies(req: &mut Request) -> CargoResult<Response> {
15781564
}
15791565
Ok(req.json(&R {
15801566
dependencies: rev_deps,
1581-
versions,
15821567
meta: Meta { total: total },
15831568
}))
15841569
}

src/tests/krate.rs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ struct Deps {
5959
#[derive(RustcDecodable)]
6060
struct RevDeps {
6161
dependencies: Vec<EncodableDependency>,
62-
versions: Vec<EncodableVersion>,
6362
meta: CrateMeta,
6463
}
6564
#[derive(RustcDecodable)]
@@ -1617,10 +1616,7 @@ fn reverse_dependencies() {
16171616
let deps = ::json::<RevDeps>(&mut response);
16181617
assert_eq!(deps.dependencies.len(), 1);
16191618
assert_eq!(deps.meta.total, 1);
1620-
assert_eq!(deps.dependencies[0].crate_id, "c1");
1621-
assert_eq!(deps.versions.len(), 1);
1622-
assert_eq!(deps.versions[0].krate, "c2");
1623-
assert_eq!(deps.versions[0].num, "1.1.0");
1619+
assert_eq!(deps.dependencies[0].crate_id, "c2");
16241620

16251621
// c1 has no dependent crates.
16261622
req.with_path("/api/v1/crates/c2/reverse_dependencies");
@@ -1655,7 +1651,7 @@ fn reverse_dependencies_when_old_version_doesnt_depend_but_new_does() {
16551651
let deps = ::json::<RevDeps>(&mut response);
16561652
assert_eq!(deps.dependencies.len(), 1);
16571653
assert_eq!(deps.meta.total, 1);
1658-
assert_eq!(deps.dependencies[0].crate_id, "c1");
1654+
assert_eq!(deps.dependencies[0].crate_id, "c2");
16591655
}
16601656

16611657
#[test]
@@ -1713,7 +1709,7 @@ fn prerelease_versions_not_included_in_reverse_dependencies() {
17131709
let deps = ::json::<RevDeps>(&mut response);
17141710
assert_eq!(deps.dependencies.len(), 1);
17151711
assert_eq!(deps.meta.total, 1);
1716-
assert_eq!(deps.dependencies[0].crate_id, "c1");
1712+
assert_eq!(deps.dependencies[0].crate_id, "c3");
17171713
}
17181714

17191715
#[test]
@@ -1741,7 +1737,7 @@ fn yanked_versions_not_included_in_reverse_dependencies() {
17411737
let deps = ::json::<RevDeps>(&mut response);
17421738
assert_eq!(deps.dependencies.len(), 1);
17431739
assert_eq!(deps.meta.total, 1);
1744-
assert_eq!(deps.dependencies[0].crate_id, "c1");
1740+
assert_eq!(deps.dependencies[0].crate_id, "c2");
17451741

17461742
// TODO: have this test call `version.yank()` once the yank method is converted to diesel
17471743
diesel::update(versions::table.filter(versions::num.eq("2.0.0")))

0 commit comments

Comments
 (0)