Skip to content

Commit e1bd572

Browse files
committed
models/version: Inline Version::dependencies() fn
1 parent fb906fc commit e1bd572

File tree

2 files changed

+11
-16
lines changed

2 files changed

+11
-16
lines changed

src/controllers/version/metadata.rs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
77
use axum::extract::Path;
88
use axum::Json;
9+
use crates_io_database::schema::{crates, dependencies};
910
use crates_io_worker::BackgroundJob;
1011
use diesel::{
11-
BoolExpressionMethods, ExpressionMethods, PgExpressionMethods, QueryDsl, RunQueryDsl,
12+
BelongingToDsl, BoolExpressionMethods, ExpressionMethods, PgExpressionMethods, QueryDsl,
13+
RunQueryDsl, SelectableHelper,
1214
};
1315
use diesel_async::async_connection_wrapper::AsyncConnectionWrapper;
1416
use http::request::Parts;
@@ -21,7 +23,8 @@ use crate::app::AppState;
2123
use crate::auth::AuthCheck;
2224
use crate::models::token::EndpointScope;
2325
use crate::models::{
24-
insert_version_owner_action, Crate, Rights, Version, VersionAction, VersionOwnerAction,
26+
insert_version_owner_action, Crate, Dependency, Rights, Version, VersionAction,
27+
VersionOwnerAction,
2528
};
2629
use crate::rate_limiter::LimitedAction;
2730
use crate::schema::versions;
@@ -63,8 +66,11 @@ pub async fn dependencies(
6366
spawn_blocking(move || {
6467
let conn: &mut AsyncConnectionWrapper<_> = &mut conn.into();
6568

66-
let deps = version.dependencies(conn)?;
67-
let deps = deps
69+
let deps = Dependency::belonging_to(&version)
70+
.inner_join(crates::table)
71+
.select((Dependency::as_select(), crates::name))
72+
.order((dependencies::optional, crates::name))
73+
.load::<(Dependency, String)>(conn)?
6874
.into_iter()
6975
.map(|(dep, crate_name)| EncodableDependency::from_dep(dep, &crate_name))
7076
.collect::<Vec<_>>();

src/models/version.rs

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use chrono::NaiveDateTime;
55
use crates_io_index::features::FeaturesMap;
66
use serde::Deserialize;
77

8-
use crate::models::{Crate, Dependency, User};
8+
use crate::models::{Crate, User};
99
use crate::schema::*;
1010
use crate::util::diesel::prelude::*;
1111
use crate::util::diesel::Conn;
@@ -35,17 +35,6 @@ pub struct Version {
3535
}
3636

3737
impl Version {
38-
/// Returns (dependency, crate dependency name)
39-
pub fn dependencies(&self, conn: &mut impl Conn) -> QueryResult<Vec<(Dependency, String)>> {
40-
use diesel::RunQueryDsl;
41-
42-
Dependency::belonging_to(self)
43-
.inner_join(crates::table)
44-
.select((Dependency::as_select(), crates::name))
45-
.order((dependencies::optional, crates::name))
46-
.load(conn)
47-
}
48-
4938
pub fn record_readme_rendering(version_id: i32, conn: &mut impl Conn) -> QueryResult<usize> {
5039
use diesel::dsl::now;
5140
use diesel::RunQueryDsl;

0 commit comments

Comments
 (0)