@@ -114,61 +114,6 @@ pub(crate) fn get_releases(
114
114
. collect ( )
115
115
}
116
116
117
- fn get_releases_by_owner (
118
- conn : & mut Client ,
119
- page : i64 ,
120
- limit : i64 ,
121
- owner : & str ,
122
- ) -> ( String , Vec < Release > ) {
123
- let offset = ( page - 1 ) * limit;
124
-
125
- let query = "SELECT crates.name,
126
- releases.version,
127
- releases.description,
128
- releases.target_name,
129
- builds.build_time,
130
- releases.rustdoc_status,
131
- repositories.stars,
132
- owners.name,
133
- owners.login
134
- FROM crates
135
- INNER JOIN releases ON releases.id = crates.latest_version_id
136
- INNER JOIN builds ON releases.id = builds.rid
137
- INNER JOIN owner_rels ON owner_rels.cid = crates.id
138
- INNER JOIN owners ON owners.id = owner_rels.oid
139
- LEFT JOIN repositories ON releases.repository_id = repositories.id
140
- WHERE owners.login = $1
141
- ORDER BY repositories.stars DESC NULLS LAST
142
- LIMIT $2 OFFSET $3" ;
143
- let query = conn. query ( query, & [ & owner, & limit, & offset] ) . unwrap ( ) ;
144
-
145
- let mut owner_name = None ;
146
- let packages = query
147
- . into_iter ( )
148
- . map ( |row| {
149
- if owner_name. is_none ( ) {
150
- owner_name = Some ( if !row. get :: < usize , String > ( 7 ) . is_empty ( ) {
151
- row. get ( 7 )
152
- } else {
153
- row. get ( 8 )
154
- } ) ;
155
- }
156
-
157
- Release {
158
- name : row. get ( 0 ) ,
159
- version : row. get ( 1 ) ,
160
- description : row. get ( 2 ) ,
161
- target_name : row. get ( 3 ) ,
162
- build_time : row. get ( 4 ) ,
163
- rustdoc_status : row. get ( 5 ) ,
164
- stars : row. get :: < _ , Option < i32 > > ( 6 ) . unwrap_or ( 0 ) ,
165
- }
166
- } )
167
- . collect ( ) ;
168
-
169
- ( owner_name. unwrap_or_default ( ) , packages)
170
- }
171
-
172
117
struct SearchResult {
173
118
pub results : Vec < Release > ,
174
119
pub executed_query : Option < String > ,
@@ -355,7 +300,6 @@ pub(super) enum ReleaseType {
355
300
Stars ,
356
301
RecentFailures ,
357
302
Failures ,
358
- Owner ,
359
303
Search ,
360
304
}
361
305
@@ -379,9 +323,9 @@ fn releases_handler(req: &mut Request, release_type: ReleaseType) -> IronResult<
379
323
true ,
380
324
) ,
381
325
382
- ReleaseType :: Owner | ReleaseType :: Search => panic ! (
383
- "The owners and search page have special requirements and cannot use this handler" ,
384
- ) ,
326
+ ReleaseType :: Search => {
327
+ panic ! ( "The search page has special requirements and cannot use this handler" , )
328
+ }
385
329
} ;
386
330
387
331
let releases = {
@@ -431,45 +375,14 @@ pub fn releases_failures_by_stars_handler(req: &mut Request) -> IronResult<Respo
431
375
432
376
pub fn owner_handler ( req : & mut Request ) -> IronResult < Response > {
433
377
let router = extension ! ( req, Router ) ;
434
- // page number of releases
435
- let page_number: i64 = router
436
- . find ( "page" )
437
- . and_then ( |page_num| page_num. parse ( ) . ok ( ) )
438
- . unwrap_or ( 1 ) ;
439
- let owner_route_value = router. find ( "owner" ) . unwrap ( ) ;
440
-
441
- let ( owner_name, releases) = {
442
- let mut conn = extension ! ( req, Pool ) . get ( ) ?;
443
-
444
- // We need to keep the owner_route_value unchanged, as we may render paginated links in the page.
445
- // Changing the owner_route_value directly will cause the link to change, for example: @foobar -> foobar.
446
- let mut owner = owner_route_value;
447
- if owner. starts_with ( '@' ) {
448
- owner = & owner[ 1 ..] ;
449
- }
450
- get_releases_by_owner ( & mut conn, page_number, RELEASES_IN_RELEASES , owner)
451
- } ;
452
-
453
- if releases. is_empty ( ) {
454
- return Err ( Nope :: OwnerNotFound . into ( ) ) ;
378
+ let mut owner = router. find ( "owner" ) . unwrap ( ) ;
379
+ if owner. starts_with ( '@' ) {
380
+ owner = & owner[ 1 ..] ;
455
381
}
456
-
457
- // Show next and previous page buttons
458
- let ( show_next_page, show_previous_page) = (
459
- releases. len ( ) == RELEASES_IN_RELEASES as usize ,
460
- page_number != 1 ,
461
- ) ;
462
-
463
- ViewReleases {
464
- releases,
465
- description : format ! ( "Crates from {}" , owner_name) ,
466
- release_type : ReleaseType :: Owner ,
467
- show_next_page,
468
- show_previous_page,
469
- page_number,
470
- owner : Some ( owner_route_value. into ( ) ) ,
382
+ match format ! ( "https://crates.io/users/{}" , owner) . parse ( ) {
383
+ Ok ( url) => Ok ( super :: redirect ( url) ) ,
384
+ Err ( _) => Err ( Nope :: OwnerNotFound . into ( ) ) ,
471
385
}
472
- . into_response ( req)
473
386
}
474
387
475
388
#[ derive( Debug , Clone , PartialEq , Serialize ) ]
0 commit comments