@@ -17,7 +17,7 @@ pub struct Builder {
1717// TODO: Test Unicode support
1818impl Builder {
1919 /// Creates a new `Builder` with the specified `schema`.
20- pub fn new < T > ( url : T , schema : Option < String > ) -> Self
20+ pub fn new < T > ( url : T , schema : Option < String > , headers : HeaderMap ) -> Self
2121 where
2222 T : Into < String > ,
2323 {
@@ -26,7 +26,7 @@ impl Builder {
2626 url : url. into ( ) ,
2727 schema,
2828 queries : Vec :: new ( ) ,
29- headers : HeaderMap :: new ( ) ,
29+ headers,
3030 body : None ,
3131 is_rpc : false ,
3232 } ;
@@ -59,31 +59,6 @@ impl Builder {
5959 self
6060 }
6161
62- /// Add arbitrary headers to the request. For instance when you may want to connect
63- /// through an api gateway that needs an API key header in addition to the JWT.
64- ///
65- /// # Example
66- ///
67- /// ```
68- /// use postgrest::Postgrest;
69- ///
70- /// static header_name: &'static str = "foo";
71- /// let header_value: String = "bar".to_string();
72- ///
73- /// let client = Postgrest::new("https://your.postgrest.endpoint/rest/v1/");
74- /// client
75- /// .from("table")
76- /// .insert_header(header_name, header_value);
77- /// ```
78- pub fn insert_header ( mut self , header_name : & ' static str , header_value : String ) -> Self {
79- self . headers . insert (
80- header_name,
81- HeaderValue :: from_str ( & header_value)
82- . expect ( "Couldn't convert supplied header value from String to str." ) ,
83- ) ;
84- self
85- }
86-
8762 /// Performs horizontal filtering with SELECT.
8863 ///
8964 /// # Note
@@ -478,7 +453,7 @@ mod tests {
478453
479454 #[ test]
480455 fn only_accept_json ( ) {
481- let builder = Builder :: new ( TABLE_URL , None ) ;
456+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) ) ;
482457 assert_eq ! (
483458 builder. headers. get( "Accept" ) . unwrap( ) ,
484459 HeaderValue :: from_static( "application/json" )
@@ -487,27 +462,16 @@ mod tests {
487462
488463 #[ test]
489464 fn auth_with_token ( ) {
490- let builder = Builder :: new ( TABLE_URL , None ) . auth ( "$Up3rS3crET" ) ;
465+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) ) . auth ( "$Up3rS3crET" ) ;
491466 assert_eq ! (
492467 builder. headers. get( "Authorization" ) . unwrap( ) ,
493468 HeaderValue :: from_static( "Bearer $Up3rS3crET" )
494469 ) ;
495470 }
496471
497- #[ test]
498- fn with_insert_header ( ) {
499- static A_HEADER_KEY : & str = "foo" ;
500- let a_header_value: String = "bar" . to_string ( ) ;
501- let builder = Builder :: new ( TABLE_URL , None ) . insert_header ( A_HEADER_KEY , a_header_value) ;
502- assert_eq ! (
503- builder. headers. get( "foo" ) . unwrap( ) ,
504- HeaderValue :: from_static( "bar" )
505- ) ;
506- }
507-
508472 #[ test]
509473 fn select_assert_query ( ) {
510- let builder = Builder :: new ( TABLE_URL , None ) . select ( "some_table" ) ;
474+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) ) . select ( "some_table" ) ;
511475 assert_eq ! ( builder. method, Method :: GET ) ;
512476 assert_eq ! (
513477 builder
@@ -519,7 +483,7 @@ mod tests {
519483
520484 #[ test]
521485 fn order_assert_query ( ) {
522- let builder = Builder :: new ( TABLE_URL , None ) . order ( "id" ) ;
486+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) ) . order ( "id" ) ;
523487 assert_eq ! (
524488 builder
525489 . queries
@@ -530,7 +494,7 @@ mod tests {
530494
531495 #[ test]
532496 fn limit_assert_range_header ( ) {
533- let builder = Builder :: new ( TABLE_URL , None ) . limit ( 20 ) ;
497+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) ) . limit ( 20 ) ;
534498 assert_eq ! (
535499 builder. headers. get( "Range" ) . unwrap( ) ,
536500 HeaderValue :: from_static( "0-19" )
@@ -539,7 +503,7 @@ mod tests {
539503
540504 #[ test]
541505 fn range_assert_range_header ( ) {
542- let builder = Builder :: new ( TABLE_URL , None ) . range ( 10 , 20 ) ;
506+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) ) . range ( 10 , 20 ) ;
543507 assert_eq ! (
544508 builder. headers. get( "Range" ) . unwrap( ) ,
545509 HeaderValue :: from_static( "10-20" )
@@ -548,7 +512,7 @@ mod tests {
548512
549513 #[ test]
550514 fn single_assert_accept_header ( ) {
551- let builder = Builder :: new ( TABLE_URL , None ) . single ( ) ;
515+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) ) . single ( ) ;
552516 assert_eq ! (
553517 builder. headers. get( "Accept" ) . unwrap( ) ,
554518 HeaderValue :: from_static( "application/vnd.pgrst.object+json" )
@@ -557,7 +521,7 @@ mod tests {
557521
558522 #[ test]
559523 fn upsert_assert_prefer_header ( ) {
560- let builder = Builder :: new ( TABLE_URL , None ) . upsert ( "ignored" ) ;
524+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) ) . upsert ( "ignored" ) ;
561525 assert_eq ! (
562526 builder. headers. get( "Prefer" ) . unwrap( ) ,
563527 HeaderValue :: from_static( "return=representation,resolution=merge-duplicates" )
@@ -566,20 +530,20 @@ mod tests {
566530
567531 #[ test]
568532 fn not_rpc_should_not_have_flag ( ) {
569- let builder = Builder :: new ( TABLE_URL , None ) . select ( "ignored" ) ;
533+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) ) . select ( "ignored" ) ;
570534 assert_eq ! ( builder. is_rpc, false ) ;
571535 }
572536
573537 #[ test]
574538 fn rpc_should_have_body_and_flag ( ) {
575- let builder = Builder :: new ( RPC_URL , None ) . rpc ( "{\" a\" : 1, \" b\" : 2}" ) ;
539+ let builder = Builder :: new ( RPC_URL , None , HeaderMap :: new ( ) ) . rpc ( "{\" a\" : 1, \" b\" : 2}" ) ;
576540 assert_eq ! ( builder. body. unwrap( ) , "{\" a\" : 1, \" b\" : 2}" ) ;
577541 assert_eq ! ( builder. is_rpc, true ) ;
578542 }
579543
580544 #[ test]
581545 fn chain_filters ( ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
582- let builder = Builder :: new ( TABLE_URL , None )
546+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) )
583547 . eq ( "username" , "supabot" )
584548 . neq ( "message" , "hello world" )
585549 . gte ( "channel_id" , "1" )
0 commit comments