Skip to content

Commit 0d703b7

Browse files
committed
models/version: Remove sync fns
1 parent bc39020 commit 0d703b7

File tree

5 files changed

+8
-42
lines changed

5 files changed

+8
-42
lines changed

src/controllers/krate/publish.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,7 @@ pub async fn publish(app: AppState, req: BytesRequest) -> AppResult<Json<GoodCra
400400
.maybe_edition(edition)
401401
.build();
402402

403-
let version = new_version.async_save(conn, &verified_email_address).await.map_err(|error| {
403+
let version = new_version.save(conn, &verified_email_address).await.map_err(|error| {
404404
use diesel::result::{Error, DatabaseErrorKind};
405405
match error {
406406
Error::DatabaseError(DatabaseErrorKind::UniqueViolation, _) =>

src/models/krate.rs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,7 @@ impl<'a> NewCrate<'a> {
126126
.await
127127
}
128128

129-
pub async fn create(
130-
&self,
131-
conn: &mut AsyncPgConnection,
132-
user_id: i32,
133-
) -> QueryResult<Crate> {
129+
pub async fn create(&self, conn: &mut AsyncPgConnection, user_id: i32) -> QueryResult<Crate> {
134130
use diesel_async::RunQueryDsl;
135131

136132
conn.transaction(|conn| {
@@ -356,10 +352,7 @@ impl Crate {
356352
/// Return both the newest (most recently updated) and
357353
/// highest version (in semver order) for the current crate,
358354
/// where all top versions are not yanked.
359-
pub async fn top_versions(
360-
&self,
361-
conn: &mut AsyncPgConnection,
362-
) -> QueryResult<TopVersions> {
355+
pub async fn top_versions(&self, conn: &mut AsyncPgConnection) -> QueryResult<TopVersions> {
363356
use diesel_async::RunQueryDsl;
364357

365358
Ok(TopVersions::from_date_version_pairs(

src/models/version.rs

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,13 @@ use std::collections::BTreeMap;
33
use bon::Builder;
44
use chrono::NaiveDateTime;
55
use crates_io_index::features::FeaturesMap;
6+
use diesel::prelude::*;
67
use diesel_async::scoped_futures::ScopedFutureExt;
7-
use diesel_async::{AsyncConnection, AsyncPgConnection};
8+
use diesel_async::{AsyncConnection, AsyncPgConnection, RunQueryDsl};
89
use serde::Deserialize;
910

1011
use crate::models::{Crate, User};
1112
use crate::schema::*;
12-
use crate::util::diesel::prelude::*;
13-
use crate::util::diesel::Conn;
1413

1514
// Queryable has a custom implementation below
1615
#[derive(Clone, Identifiable, Associations, Debug, Queryable, Selectable)]
@@ -43,7 +42,6 @@ impl Version {
4342
conn: &mut AsyncPgConnection,
4443
) -> QueryResult<usize> {
4544
use diesel::dsl::now;
46-
use diesel_async::RunQueryDsl;
4745

4846
diesel::insert_into(readme_renderings::table)
4947
.values(readme_renderings::version_id.eq(version_id))
@@ -57,8 +55,6 @@ impl Version {
5755
/// Gets the User who ran `cargo publish` for this version, if recorded.
5856
/// Not for use when you have a group of versions you need the publishers for.
5957
pub async fn published_by(&self, conn: &mut AsyncPgConnection) -> QueryResult<Option<User>> {
60-
use diesel_async::RunQueryDsl;
61-
6258
match self.published_by {
6359
Some(pb) => users::table.find(pb).first(conn).await.optional(),
6460
None => Ok(None),
@@ -102,30 +98,12 @@ pub struct NewVersion<'a> {
10298
}
10399

104100
impl NewVersion<'_> {
105-
pub fn save(&self, conn: &mut impl Conn, published_by_email: &str) -> QueryResult<Version> {
106-
use diesel::insert_into;
107-
use diesel::RunQueryDsl;
108-
109-
conn.transaction(|conn| {
110-
let version: Version = insert_into(versions::table).values(self).get_result(conn)?;
111-
112-
insert_into(versions_published_by::table)
113-
.values((
114-
versions_published_by::version_id.eq(version.id),
115-
versions_published_by::email.eq(published_by_email),
116-
))
117-
.execute(conn)?;
118-
Ok(version)
119-
})
120-
}
121-
122-
pub async fn async_save(
101+
pub async fn save(
123102
&self,
124103
conn: &mut AsyncPgConnection,
125104
published_by_email: &str,
126105
) -> QueryResult<Version> {
127106
use diesel::insert_into;
128-
use diesel_async::RunQueryDsl;
129107

130108
conn.transaction(|conn| {
131109
async move {

src/tests/builders/version.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,7 @@ impl VersionBuilder {
114114
.maybe_created_at(self.created_at.as_ref())
115115
.build();
116116

117-
let vers = new_version
118-
.async_save(connection, "[email protected]")
119-
.await?;
117+
let vers = new_version.save(connection, "[email protected]").await?;
120118

121119
let new_deps = self
122120
.dependencies

src/worker/jobs/downloads/update_metadata.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,7 @@ mod tests {
133133
.checksum("0000000000000000000000000000000000000000000000000000000000000000")
134134
.build();
135135

136-
let version = version
137-
.async_save(conn, "[email protected]")
138-
.await
139-
.unwrap();
136+
let version = version.save(conn, "[email protected]").await.unwrap();
140137
(krate, version)
141138
}
142139

0 commit comments

Comments
 (0)