Skip to content

Commit abd42d4

Browse files
committed
models/krate: Remove errors::version_not_found() dependency
1 parent ec133a4 commit abd42d4

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

src/controllers/krate/metadata.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ use crate::models::{
1111
Version, VersionOwnerAction,
1212
};
1313
use crate::schema::*;
14-
use crate::util::errors::{bad_request, crate_not_found, AppResult, BoxedAppError};
14+
use crate::util::errors::{
15+
bad_request, crate_not_found, version_not_found, AppResult, BoxedAppError,
16+
};
1517
use crate::views::{EncodableCategory, EncodableCrate, EncodableKeyword, EncodableVersion};
1618
use axum::extract::{FromRequestParts, Query};
1719
use axum_extra::json;
@@ -123,6 +125,8 @@ pub async fn find_crate(
123125
.filter(|_| include.default_version && !include.versions)
124126
{
125127
let version = krate.find_version(&mut conn, default_version).await?;
128+
let version = version.ok_or_else(|| version_not_found(&krate.name, default_version))?;
129+
126130
let (actions, published_by) = tokio::try_join!(
127131
VersionOwnerAction::by_version(&mut conn, &version),
128132
version.published_by(&mut conn),

src/controllers/version.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use utoipa::IntoParams;
1414

1515
use crate::controllers::krate::load_crate;
1616
use crate::models::{Crate, Version};
17-
use crate::util::errors::AppResult;
17+
use crate::util::errors::{version_not_found, AppResult};
1818

1919
#[derive(Deserialize, FromRequestParts, IntoParams)]
2020
#[into_params(parameter_in = Path)]
@@ -47,7 +47,10 @@ async fn version_and_crate(
4747
semver: &str,
4848
) -> AppResult<(Version, Crate)> {
4949
let krate = load_crate(conn, crate_name).await?;
50-
let version = krate.find_version(conn, semver).await?;
50+
let version = krate
51+
.find_version(conn, semver)
52+
.await?
53+
.ok_or_else(|| version_not_found(crate_name, semver))?;
5154

5255
Ok((version, krate))
5356
}

src/models/krate.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ use crate::models::{
1616
ReverseDependency, User, Version,
1717
};
1818
use crate::schema::*;
19-
use crate::util::errors::{version_not_found, AppResult};
2019
use crate::{app::App, util::errors::BoxedAppError};
2120
use crates_io_diesel_helpers::canon_crate_name;
2221

@@ -208,14 +207,13 @@ impl Crate {
208207
&self,
209208
conn: &mut AsyncPgConnection,
210209
version: &str,
211-
) -> AppResult<Version> {
210+
) -> QueryResult<Option<Version>> {
212211
Version::belonging_to(self)
213212
.filter(versions::num.eq(version))
214213
.select(Version::as_select())
215214
.first(conn)
216215
.await
217-
.optional()?
218-
.ok_or_else(|| version_not_found(&self.name, version))
216+
.optional()
219217
}
220218

221219
// Validates the name is a valid crate name.

0 commit comments

Comments
 (0)