@@ -17,7 +17,7 @@ pub struct Builder {
17
17
// TODO: Test Unicode support
18
18
impl Builder {
19
19
/// 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
21
21
where
22
22
T : Into < String > ,
23
23
{
@@ -26,7 +26,7 @@ impl Builder {
26
26
url : url. into ( ) ,
27
27
schema,
28
28
queries : Vec :: new ( ) ,
29
- headers : HeaderMap :: new ( ) ,
29
+ headers,
30
30
body : None ,
31
31
is_rpc : false ,
32
32
} ;
@@ -59,31 +59,6 @@ impl Builder {
59
59
self
60
60
}
61
61
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
-
87
62
/// Performs horizontal filtering with SELECT.
88
63
///
89
64
/// # Note
@@ -478,7 +453,7 @@ mod tests {
478
453
479
454
#[ test]
480
455
fn only_accept_json ( ) {
481
- let builder = Builder :: new ( TABLE_URL , None ) ;
456
+ let builder = Builder :: new ( TABLE_URL , None , HeaderMap :: new ( ) ) ;
482
457
assert_eq ! (
483
458
builder. headers. get( "Accept" ) . unwrap( ) ,
484
459
HeaderValue :: from_static( "application/json" )
@@ -487,27 +462,16 @@ mod tests {
487
462
488
463
#[ test]
489
464
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" ) ;
491
466
assert_eq ! (
492
467
builder. headers. get( "Authorization" ) . unwrap( ) ,
493
468
HeaderValue :: from_static( "Bearer $Up3rS3crET" )
494
469
) ;
495
470
}
496
471
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
-
508
472
#[ test]
509
473
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" ) ;
511
475
assert_eq ! ( builder. method, Method :: GET ) ;
512
476
assert_eq ! (
513
477
builder
@@ -519,7 +483,7 @@ mod tests {
519
483
520
484
#[ test]
521
485
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" ) ;
523
487
assert_eq ! (
524
488
builder
525
489
. queries
@@ -530,7 +494,7 @@ mod tests {
530
494
531
495
#[ test]
532
496
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 ) ;
534
498
assert_eq ! (
535
499
builder. headers. get( "Range" ) . unwrap( ) ,
536
500
HeaderValue :: from_static( "0-19" )
@@ -539,7 +503,7 @@ mod tests {
539
503
540
504
#[ test]
541
505
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 ) ;
543
507
assert_eq ! (
544
508
builder. headers. get( "Range" ) . unwrap( ) ,
545
509
HeaderValue :: from_static( "10-20" )
@@ -548,7 +512,7 @@ mod tests {
548
512
549
513
#[ test]
550
514
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 ( ) ;
552
516
assert_eq ! (
553
517
builder. headers. get( "Accept" ) . unwrap( ) ,
554
518
HeaderValue :: from_static( "application/vnd.pgrst.object+json" )
@@ -557,7 +521,7 @@ mod tests {
557
521
558
522
#[ test]
559
523
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" ) ;
561
525
assert_eq ! (
562
526
builder. headers. get( "Prefer" ) . unwrap( ) ,
563
527
HeaderValue :: from_static( "return=representation,resolution=merge-duplicates" )
@@ -566,20 +530,20 @@ mod tests {
566
530
567
531
#[ test]
568
532
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" ) ;
570
534
assert_eq ! ( builder. is_rpc, false ) ;
571
535
}
572
536
573
537
#[ test]
574
538
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}" ) ;
576
540
assert_eq ! ( builder. body. unwrap( ) , "{\" a\" : 1, \" b\" : 2}" ) ;
577
541
assert_eq ! ( builder. is_rpc, true ) ;
578
542
}
579
543
580
544
#[ test]
581
545
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 ( ) )
583
547
. eq ( "username" , "supabot" )
584
548
. neq ( "message" , "hello world" )
585
549
. gte ( "channel_id" , "1" )
0 commit comments