@@ -3,14 +3,13 @@ use std::collections::BTreeMap;
33use bon:: Builder ;
44use chrono:: NaiveDateTime ;
55use crates_io_index:: features:: FeaturesMap ;
6+ use diesel:: prelude:: * ;
67use diesel_async:: scoped_futures:: ScopedFutureExt ;
7- use diesel_async:: { AsyncConnection , AsyncPgConnection } ;
8+ use diesel_async:: { AsyncConnection , AsyncPgConnection , RunQueryDsl } ;
89use serde:: Deserialize ;
910
1011use crate :: models:: { Crate , User } ;
1112use 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
104100impl 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 {
0 commit comments