@@ -227,7 +227,7 @@ fn get_search_results(
227
227
mut query : & str ,
228
228
page : i64 ,
229
229
limit : i64 ,
230
- ) -> ( i64 , Vec < Release > ) {
230
+ ) -> Result < ( i64 , Vec < Release > ) , failure :: Error > {
231
231
query = query. trim ( ) ;
232
232
let offset = ( page - 1 ) * limit;
233
233
@@ -265,11 +265,7 @@ fn get_search_results(
265
265
releases.downloads DESC
266
266
LIMIT $2 OFFSET $3" ;
267
267
268
- let rows = if let Ok ( rows) = conn. query ( statement, & [ & query, & limit, & offset] ) {
269
- rows
270
- } else {
271
- return ( 0 , Vec :: new ( ) ) ;
272
- } ;
268
+ let rows = conn. query ( statement, & [ & query, & limit, & offset] ) ?;
273
269
274
270
// Each row contains the total number of possible/valid results, just get it once
275
271
let total_results = rows
@@ -289,7 +285,7 @@ fn get_search_results(
289
285
} )
290
286
. collect ( ) ;
291
287
292
- ( total_results, packages)
288
+ Ok ( ( total_results, packages) )
293
289
}
294
290
295
291
#[ derive( Debug , Clone , PartialEq , Eq , Serialize ) ]
@@ -605,7 +601,10 @@ pub fn search_handler(req: &mut Request) -> IronResult<Response> {
605
601
}
606
602
}
607
603
608
- let ( _, results) = get_search_results ( & mut conn, & query, 1 , RELEASES_IN_RELEASES ) ;
604
+ let ( _, results) = ctry ! (
605
+ req,
606
+ get_search_results( & mut conn, & query, 1 , RELEASES_IN_RELEASES )
607
+ ) ;
609
608
let title = if results. is_empty ( ) {
610
609
format ! ( "No results found for '{}'" , query)
611
610
} else {
@@ -719,7 +718,7 @@ mod tests {
719
718
. version ( "0.0.0" )
720
719
. create ( ) ?;
721
720
722
- let ( num_results, results) = get_search_results ( & mut db. conn ( ) , "foo" , 1 , 100 ) ;
721
+ let ( num_results, results) = get_search_results ( & mut db. conn ( ) , "foo" , 1 , 100 ) ? ;
723
722
assert_eq ! ( num_results, 4 ) ;
724
723
725
724
let mut results = results. into_iter ( ) ;
@@ -748,7 +747,7 @@ mod tests {
748
747
749
748
for name in near_matches. iter ( ) {
750
749
let ( num_results, mut results) =
751
- dbg ! ( get_search_results( & mut db. conn( ) , * name, 1 , 100 ) ) ;
750
+ dbg ! ( get_search_results( & mut db. conn( ) , * name, 1 , 100 ) ) ? ;
752
751
assert_eq ! ( num_results, 3 ) ;
753
752
754
753
for name in releases. iter ( ) {
@@ -771,7 +770,7 @@ mod tests {
771
770
. build_result_successful ( false )
772
771
. create ( ) ?;
773
772
774
- let ( num_results, results) = get_search_results ( & mut db. conn ( ) , "regex" , 1 , 100 ) ;
773
+ let ( num_results, results) = get_search_results ( & mut db. conn ( ) , "regex" , 1 , 100 ) ? ;
775
774
assert_eq ! ( num_results, 0 ) ;
776
775
777
776
let results = results. into_iter ( ) ;
@@ -791,7 +790,7 @@ mod tests {
791
790
. yanked ( true )
792
791
. create ( ) ?;
793
792
794
- let ( num_results, results) = get_search_results ( & mut db. conn ( ) , "regex" , 1 , 100 ) ;
793
+ let ( num_results, results) = get_search_results ( & mut db. conn ( ) , "regex" , 1 , 100 ) ? ;
795
794
assert_eq ! ( num_results, 0 ) ;
796
795
797
796
let results = results. into_iter ( ) ;
@@ -807,7 +806,7 @@ mod tests {
807
806
let db = env. db ( ) ;
808
807
env. fake_release ( ) . name ( "regex" ) . version ( "0.0.0" ) . create ( ) ?;
809
808
810
- let ( num_results, results) = get_search_results ( & mut db. conn ( ) , "redex" , 1 , 100 ) ;
809
+ let ( num_results, results) = get_search_results ( & mut db. conn ( ) , "redex" , 1 , 100 ) ? ;
811
810
assert_eq ! ( num_results, 1 ) ;
812
811
813
812
let mut results = results. into_iter ( ) ;
@@ -829,7 +828,7 @@ mod tests {
829
828
// .create()?;
830
829
//
831
830
// let (num_results, results) =
832
- // get_search_results(&mut db.conn(), "supercalifragilisticexpialidocious", 1, 100);
831
+ // get_search_results(&mut db.conn(), "supercalifragilisticexpialidocious", 1, 100)? ;
833
832
// assert_eq!(num_results, 1);
834
833
//
835
834
// let mut results = results.into_iter();
@@ -855,7 +854,7 @@ mod tests {
855
854
. name ( "something_completely_unrelated" )
856
855
. create ( ) ?;
857
856
858
- let ( num_results, results) = get_search_results ( & mut db. conn ( ) , "something" , 1 , 2 ) ;
857
+ let ( num_results, results) = get_search_results ( & mut db. conn ( ) , "something" , 1 , 2 ) ? ;
859
858
assert_eq ! ( num_results, 4 ) ;
860
859
861
860
let mut results = results. into_iter ( ) ;
@@ -878,7 +877,7 @@ mod tests {
878
877
. name ( "something_completely_unrelated" )
879
878
. create ( ) ?;
880
879
881
- let ( num_results, results) = get_search_results ( & mut db. conn ( ) , "something" , 2 , 2 ) ;
880
+ let ( num_results, results) = get_search_results ( & mut db. conn ( ) , "something" , 2 , 2 ) ? ;
882
881
assert_eq ! ( num_results, 4 ) ;
883
882
884
883
let mut results = results. into_iter ( ) ;
@@ -922,7 +921,7 @@ mod tests {
922
921
. version ( "0.0.0" )
923
922
. create ( ) ?;
924
923
925
- let ( num_results, results) = get_search_results ( & mut db. conn ( ) , "somethang" , 1 , 100 ) ;
924
+ let ( num_results, results) = get_search_results ( & mut db. conn ( ) , "somethang" , 1 , 100 ) ? ;
926
925
assert_eq ! ( num_results, 1 ) ;
927
926
928
927
let mut results = results. into_iter ( ) ;
@@ -954,7 +953,7 @@ mod tests {
954
953
// .create()?;
955
954
//
956
955
// let (num_results, results) =
957
- // get_search_results(&mut db.conn(), "name_better_than_description", 1, 100);
956
+ // get_search_results(&mut db.conn(), "name_better_than_description", 1, 100)? ;
958
957
// assert_eq!(num_results, 2);
959
958
//
960
959
// let mut results = results.into_iter();
@@ -987,7 +986,7 @@ mod tests {
987
986
. name ( "i_am_useless_and_mean_nothing" )
988
987
. create ( ) ?;
989
988
990
- let ( num_results, results) = get_search_results ( & mut db. conn ( ) , "match" , 1 , 100 ) ;
989
+ let ( num_results, results) = get_search_results ( & mut db. conn ( ) , "match" , 1 , 100 ) ? ;
991
990
assert_eq ! ( num_results, 3 ) ;
992
991
993
992
let mut results = results. into_iter ( ) ;
@@ -1008,7 +1007,7 @@ mod tests {
1008
1007
env. fake_release ( ) . name ( "matcb" ) . downloads ( 10 ) . create ( ) ?;
1009
1008
env. fake_release ( ) . name ( "matcc" ) . downloads ( 1 ) . create ( ) ?;
1010
1009
1011
- let ( num_results, results) = get_search_results ( & mut db. conn ( ) , "match" , 1 , 100 ) ;
1010
+ let ( num_results, results) = get_search_results ( & mut db. conn ( ) , "match" , 1 , 100 ) ? ;
1012
1011
assert_eq ! ( num_results, 3 ) ;
1013
1012
1014
1013
let mut results = results. into_iter ( ) ;
0 commit comments