Skip to content

Commit 59a762e

Browse files
committed
Add description to crate admin list
1 parent d851e9d commit 59a762e

File tree

3 files changed

+29
-19
lines changed

3 files changed

+29
-19
lines changed

src/controllers/admin.rs

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -42,18 +42,20 @@ pub async fn list(
4242
.first::<(User, Option<bool>, Option<String>)>(&mut conn)
4343
.await?;
4444

45-
let crates: Vec<(i32, String, DateTime<Utc>, i64)> = CrateOwner::by_owner_kind(OwnerKind::User)
46-
.inner_join(crates::table)
47-
.filter(crate_owners::owner_id.eq(user.id))
48-
.select((
49-
crates::id,
50-
crates::name,
51-
crates::updated_at,
52-
rev_deps_subquery(),
53-
))
54-
.order(crates::name.asc())
55-
.load(&mut conn)
56-
.await?;
45+
let crates: Vec<(i32, String, Option<String>, DateTime<Utc>, i64)> =
46+
CrateOwner::by_owner_kind(OwnerKind::User)
47+
.inner_join(crates::table)
48+
.filter(crate_owners::owner_id.eq(user.id))
49+
.select((
50+
crates::id,
51+
crates::name,
52+
crates::description,
53+
crates::updated_at,
54+
rev_deps_subquery(),
55+
))
56+
.order(crates::name.asc())
57+
.load(&mut conn)
58+
.await?;
5759

5860
let crate_ids: Vec<_> = crates.iter().map(|(id, ..)| id).collect();
5961

@@ -71,11 +73,12 @@ pub async fn list(
7173
let verified = verified.unwrap_or(false);
7274
let crates = crates
7375
.into_iter()
74-
.map(|(crate_id, name, updated_at, num_rev_deps)| {
76+
.map(|(crate_id, name, description, updated_at, num_rev_deps)| {
7577
let versions = versions_by_crate_id.get(&crate_id);
7678
let last_version = versions.and_then(|v| v.last());
7779
AdminCrateInfo {
7880
name,
81+
description,
7982
updated_at,
8083
num_rev_deps,
8184
num_versions: versions.map(|v| v.len()).unwrap_or(0),
@@ -101,6 +104,7 @@ pub struct AdminListResponse {
101104
#[derive(Debug, Serialize)]
102105
pub struct AdminCrateInfo {
103106
pub name: String,
107+
pub description: Option<String>,
104108
pub updated_at: DateTime<Utc>,
105109
pub num_rev_deps: i64,
106110
pub num_versions: usize,

src/tests/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ pub struct AdminListResponse {
9292
#[derive(Deserialize)]
9393
pub struct AdminCrateInfo {
9494
name: String,
95+
description: Option<String>,
9596
num_versions: usize,
9697
num_rev_deps: i64,
9798
}

src/tests/routes/crates/admin.rs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ async fn index_include_yanked() -> anyhow::Result<()> {
4343
.unwrap();
4444

4545
let crate_1 = CrateBuilder::new("unyanked", user.id)
46+
.description("My Fun Crate")
4647
.version(VersionBuilder::new("0.1.0").yanked(true))
4748
.version(VersionBuilder::new("1.0.0"))
4849
.version(VersionBuilder::new("2.0.0"))
@@ -67,13 +68,17 @@ async fn index_include_yanked() -> anyhow::Result<()> {
6768
assert_eq!(json.user_email.unwrap(), "foo@example.com");
6869
assert_eq!(json.crates.len(), 2);
6970

70-
assert_eq!(json.crates[0].name, "all_yanked");
71-
assert_eq!(json.crates[0].num_versions, 2);
72-
assert_eq!(json.crates[0].num_rev_deps, 0);
71+
let json_crate_0 = &json.crates[0];
72+
assert_eq!(json_crate_0.name, "all_yanked");
73+
assert!(json_crate_0.description.is_none());
74+
assert_eq!(json_crate_0.num_versions, 2);
75+
assert_eq!(json_crate_0.num_rev_deps, 0);
7376

74-
assert_eq!(json.crates[1].name, "unyanked");
75-
assert_eq!(json.crates[1].num_versions, 3);
76-
assert_eq!(json.crates[1].num_rev_deps, 1);
77+
let json_crate_1 = &json.crates[1];
78+
assert_eq!(json_crate_1.name, "unyanked");
79+
assert_eq!(json_crate_1.description.as_ref().unwrap(), "My Fun Crate");
80+
assert_eq!(json_crate_1.num_versions, 3);
81+
assert_eq!(json_crate_1.num_rev_deps, 1);
7782

7883
Ok(())
7984
}

0 commit comments

Comments
 (0)