Skip to content

Commit 3fe5966

Browse files
committed
controllers/summary: Move encode_crates() fn to top-level
1 parent 06fcc09 commit 3fe5966

File tree

1 file changed

+35
-35
lines changed

1 file changed

+35
-35
lines changed

src/controllers/summary.rs

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -30,41 +30,6 @@ pub async fn summary(state: AppState) -> AppResult<ErasedJson> {
3030
.get_result(&mut conn)
3131
.await?;
3232

33-
async fn encode_crates(
34-
conn: &mut AsyncPgConnection,
35-
data: Vec<Record>,
36-
) -> AppResult<Vec<EncodableCrate>> {
37-
use diesel::GroupedBy;
38-
use diesel_async::RunQueryDsl;
39-
40-
let krates = data.iter().map(|(c, ..)| c).collect::<Vec<_>>();
41-
let versions: Vec<Version> = Version::belonging_to(&krates)
42-
.filter(versions::yanked.eq(false))
43-
.select(Version::as_select())
44-
.load(conn)
45-
.await?;
46-
47-
versions
48-
.grouped_by(&krates)
49-
.into_iter()
50-
.map(TopVersions::from_versions)
51-
.zip(data)
52-
.map(
53-
|(top_versions, (krate, total, recent, default_version, yanked))| {
54-
Ok(EncodableCrate::from_minimal(
55-
krate,
56-
default_version.as_deref(),
57-
yanked,
58-
Some(&top_versions),
59-
false,
60-
total,
61-
recent,
62-
))
63-
},
64-
)
65-
.collect()
66-
}
67-
6833
let config = &state.config;
6934

7035
let selection = (
@@ -143,3 +108,38 @@ pub async fn summary(state: AppState) -> AppResult<ErasedJson> {
143108
}
144109

145110
type Record = (Crate, i64, Option<i64>, Option<String>, Option<bool>);
111+
112+
async fn encode_crates(
113+
conn: &mut AsyncPgConnection,
114+
data: Vec<Record>,
115+
) -> AppResult<Vec<EncodableCrate>> {
116+
use diesel::GroupedBy;
117+
use diesel_async::RunQueryDsl;
118+
119+
let krates = data.iter().map(|(c, ..)| c).collect::<Vec<_>>();
120+
let versions: Vec<Version> = Version::belonging_to(&krates)
121+
.filter(versions::yanked.eq(false))
122+
.select(Version::as_select())
123+
.load(conn)
124+
.await?;
125+
126+
versions
127+
.grouped_by(&krates)
128+
.into_iter()
129+
.map(TopVersions::from_versions)
130+
.zip(data)
131+
.map(
132+
|(top_versions, (krate, total, recent, default_version, yanked))| {
133+
Ok(EncodableCrate::from_minimal(
134+
krate,
135+
default_version.as_deref(),
136+
yanked,
137+
Some(&top_versions),
138+
false,
139+
total,
140+
recent,
141+
))
142+
},
143+
)
144+
.collect()
145+
}

0 commit comments

Comments
 (0)