File tree 2 files changed +18
-13
lines changed
2 files changed +18
-13
lines changed Original file line number Diff line number Diff line change @@ -1399,9 +1399,10 @@ pub fn following(req: &mut Request) -> CargoResult<Response> {
1399
1399
// this information already, but ember is definitely requesting it
1400
1400
pub fn versions ( req : & mut Request ) -> CargoResult < Response > {
1401
1401
let crate_name = & req. params ( ) [ "crate_id" ] ;
1402
- let tx = req. tx ( ) ?;
1403
- let krate = Crate :: find_by_name ( tx, crate_name) ?;
1404
- let versions = krate. versions ( tx) ?;
1402
+ let conn = req. db_conn ( ) ?;
1403
+ let krate = Crate :: by_name ( crate_name) . first :: < Crate > ( & * conn) ?;
1404
+ let mut versions = Version :: belonging_to ( & krate) . load :: < Version > ( & * conn) ?;
1405
+ versions. sort_by ( |a, b| b. num . cmp ( & a. num ) ) ;
1405
1406
let versions = versions
1406
1407
. into_iter ( )
1407
1408
. map ( |v| v. encodable ( crate_name) )
Original file line number Diff line number Diff line change @@ -410,16 +410,20 @@ fn show() {
410
410
fn versions ( ) {
411
411
let ( _b, app, middle) = :: app ( ) ;
412
412
413
- let v100 = semver:: Version :: parse ( "1.0.0" ) . unwrap ( ) ;
414
- let v050 = semver:: Version :: parse ( "0.5.0" ) . unwrap ( ) ;
415
- let v051 = semver:: Version :: parse ( "0.5.1" ) . unwrap ( ) ;
416
-
417
- let mut req = :: req ( app, Method :: Get , "/api/v1/crates/foo_versions/versions" ) ;
418
- :: mock_user ( & mut req, :: user ( "foo" ) ) ;
419
-
420
- :: mock_crate_vers ( & mut req, :: krate ( "foo_versions" ) , & v051) ;
421
- :: mock_crate_vers ( & mut req, :: krate ( "foo_versions" ) , & v100) ;
422
- :: mock_crate_vers ( & mut req, :: krate ( "foo_versions" ) , & v050) ;
413
+ let mut req = :: req (
414
+ app. clone ( ) ,
415
+ Method :: Get ,
416
+ "/api/v1/crates/foo_versions/versions" ,
417
+ ) ;
418
+ {
419
+ let conn = app. diesel_database . get ( ) . unwrap ( ) ;
420
+ let u = :: new_user ( "foo" ) . create_or_update ( & conn) . unwrap ( ) ;
421
+ :: CrateBuilder :: new ( "foo_versions" , u. id )
422
+ . version ( "0.5.1" )
423
+ . version ( "1.0.0" )
424
+ . version ( "0.5.0" )
425
+ . expect_build ( & conn) ;
426
+ }
423
427
424
428
let mut response = ok_resp ! ( middle. call( & mut req) ) ;
425
429
let json: VersionsList = :: json ( & mut response) ;
You can’t perform that action at this time.
0 commit comments