@@ -18,6 +18,7 @@ use axum::{
18
18
extract:: { Extension , Path , Query } ,
19
19
response:: { IntoResponse , Response as AxumResponse } ,
20
20
} ;
21
+ use base64:: { engine:: general_purpose:: STANDARD as b64, Engine } ;
21
22
use chrono:: { DateTime , NaiveDate , Utc } ;
22
23
use postgres:: Client ;
23
24
use serde:: { Deserialize , Serialize } ;
@@ -560,7 +561,7 @@ pub(crate) async fn search_handler(
560
561
}
561
562
562
563
let search_result = if let Some ( paginate) = params. get ( "paginate" ) {
563
- let decoded = base64 :: decode ( paginate. as_bytes ( ) ) . map_err ( |e| {
564
+ let decoded = b64 . decode ( paginate. as_bytes ( ) ) . map_err ( |e| {
564
565
warn ! (
565
566
"error when decoding pagination base64 string \" {}\" : {:?}" ,
566
567
paginate, e
@@ -609,10 +610,10 @@ pub(crate) async fn search_handler(
609
610
search_query : Some ( executed_query) ,
610
611
next_page_link : search_result
611
612
. next_page
612
- . map ( |params| format ! ( "/releases/search?paginate={}" , base64 :: encode( params) ) ) ,
613
+ . map ( |params| format ! ( "/releases/search?paginate={}" , b64 . encode( params) ) ) ,
613
614
previous_page_link : search_result
614
615
. prev_page
615
- . map ( |params| format ! ( "/releases/search?paginate={}" , base64 :: encode( params) ) ) ,
616
+ . map ( |params| format ! ( "/releases/search?paginate={}" , b64 . encode( params) ) ) ,
616
617
..Default :: default ( )
617
618
}
618
619
. into_response ( ) )
@@ -932,14 +933,14 @@ mod tests {
932
933
other_search_links[ 0 ] ,
933
934
format!(
934
935
"/releases/search?paginate={}" ,
935
- base64 :: encode( "?and=the¶meters=for&the=previouspage" ) ,
936
+ b64 . encode( "?and=the¶meters=for&the=previouspage" ) ,
936
937
)
937
938
) ;
938
939
assert_eq ! (
939
940
other_search_links[ 1 ] ,
940
941
format!(
941
942
"/releases/search?paginate={}" ,
942
- base64 :: encode( "?some=parameters&that=cratesio&might=return" )
943
+ b64 . encode( "?some=parameters&that=cratesio&might=return" )
943
944
)
944
945
) ;
945
946
@@ -954,7 +955,7 @@ mod tests {
954
955
. frontend ( )
955
956
. get ( & format ! (
956
957
"/releases/search?paginate={}" ,
957
- base64 :: encode( "something_that_doesnt_start_with_?" )
958
+ b64 . encode( "something_that_doesnt_start_with_?" )
958
959
) )
959
960
. send ( ) ?;
960
961
assert_eq ! ( response. status( ) , StatusCode :: NOT_FOUND ) ;
@@ -1016,7 +1017,7 @@ mod tests {
1016
1017
let links = get_release_links (
1017
1018
& format ! (
1018
1019
"/releases/search?paginate={}" ,
1019
- base64 :: encode( "?some=dummy&pagination=parameters" )
1020
+ b64 . encode( "?some=dummy&pagination=parameters" )
1020
1021
) ,
1021
1022
web,
1022
1023
) ?;
0 commit comments