From 6356b9b200da8577ff60d4fdb741893dcbaa431a Mon Sep 17 00:00:00 2001 From: Blag Date: Wed, 28 Feb 2024 07:30:33 -0500 Subject: [PATCH 1/3] Update http_client.rb to fix detect_provider problem Detect Provider calls build_query method from Auth.rb instead of http_client.rb. By renaming the private method build_query to build_http_query on http_client.rb the problem is solved. --- lib/nylas/handler/http_client.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/nylas/handler/http_client.rb b/lib/nylas/handler/http_client.rb index 1ba3d8b7..b4d416b4 100644 --- a/lib/nylas/handler/http_client.rb +++ b/lib/nylas/handler/http_client.rb @@ -211,7 +211,7 @@ def throw_error(response, status_code) def build_url(url, query = nil) unless query.nil? || query.empty? uri = URI.parse(url) - uri = build_query(uri, query) + uri = build_http_query(uri, query) url = uri.to_s end @@ -222,7 +222,7 @@ def build_url(url, query = nil) # @param uri [URI] URL to add the query to. # @param query [Hash] The query params to include in the query. # @return [URI] The URI object with the query parameters included. - def build_query(uri, query) + def build_http_query(uri, query) query.each do |key, value| case value when Array From 2bbb46540c54a1b7878f541f487aa0eb37346518 Mon Sep 17 00:00:00 2001 From: Blag Date: Wed, 28 Feb 2024 07:39:33 -0500 Subject: [PATCH 2/3] Add build_http_query to spec --- spec/nylas/handler/http_client_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/nylas/handler/http_client_spec.rb b/spec/nylas/handler/http_client_spec.rb index d5cef1e1..185213e0 100644 --- a/spec/nylas/handler/http_client_spec.rb +++ b/spec/nylas/handler/http_client_spec.rb @@ -181,7 +181,7 @@ class TestHttpClient end end - describe "#build_query" do + describe "#build_http_query" do it "returns the correct query params" do uri = URI.parse("https://test.api.nylas.com/foo") params = { @@ -190,7 +190,7 @@ class TestHttpClient map: { key1: "value1", key2: "value2" } } - final_uri = http_client.send(:build_query, uri, params) + final_uri = http_client.send(:build_http_query, uri, params) expect(final_uri.to_s).to eq("https://test.api.nylas.com/foo?foo=bar&list=a&list=b&list=c&map=key1%3Avalue1&map=key2%3Avalue2") end From 7049bf5a87b6b8b5605637818350f19f0c48377e Mon Sep 17 00:00:00 2001 From: Blag Date: Wed, 28 Feb 2024 13:13:25 -0500 Subject: [PATCH 3/3] Renamed build_query on Auth instead of http_client --- lib/nylas/handler/http_client.rb | 4 ++-- lib/nylas/resources/auth.rb | 8 ++++---- spec/nylas/handler/http_client_spec.rb | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/nylas/handler/http_client.rb b/lib/nylas/handler/http_client.rb index b4d416b4..1ba3d8b7 100644 --- a/lib/nylas/handler/http_client.rb +++ b/lib/nylas/handler/http_client.rb @@ -211,7 +211,7 @@ def throw_error(response, status_code) def build_url(url, query = nil) unless query.nil? || query.empty? uri = URI.parse(url) - uri = build_http_query(uri, query) + uri = build_query(uri, query) url = uri.to_s end @@ -222,7 +222,7 @@ def build_url(url, query = nil) # @param uri [URI] URL to add the query to. # @param query [Hash] The query params to include in the query. # @return [URI] The URI object with the query parameters included. - def build_http_query(uri, query) + def build_query(uri, query) query.each do |key, value| case value when Array diff --git a/lib/nylas/resources/auth.rb b/lib/nylas/resources/auth.rb index 6c30c066..e303a6c7 100644 --- a/lib/nylas/resources/auth.rb +++ b/lib/nylas/resources/auth.rb @@ -118,7 +118,7 @@ def detect_provider(params) # @return [String] Updated list of parameters, including those specific to admin # consent. def build_query_with_admin_consent(config) - params = build_query(config) + params = build_http_query(config) # Appends new params specific for admin consent. params[:provider] = "microsoft" @@ -135,7 +135,7 @@ def build_query_with_admin_consent(config) # @return [String] Updated list of encoded parameters, including those specific # to PKCE. def build_query_with_pkce(config, secret_hash) - params = build_query(config) + params = build_http_query(config) # Appends new PKCE specific params. params[:code_challenge_method] = "s256" @@ -151,7 +151,7 @@ def build_query_with_pkce(config, secret_hash) def url_auth_builder(config) builder = URI.parse(api_uri) builder.path = "/v3/connect/auth" - builder.query = URI.encode_www_form(build_query(config)).gsub(/\+/, "%20") + builder.query = URI.encode_www_form(build_http_query(config)).gsub(/\+/, "%20") builder end @@ -160,7 +160,7 @@ def url_auth_builder(config) # # @param config [Hash] Configuration for the query. # @return [Hash] List of parameters to encode in the query. - def build_query(config) + def build_http_query(config) params = { client_id: config[:client_id], redirect_uri: config[:redirect_uri], diff --git a/spec/nylas/handler/http_client_spec.rb b/spec/nylas/handler/http_client_spec.rb index 185213e0..d5cef1e1 100644 --- a/spec/nylas/handler/http_client_spec.rb +++ b/spec/nylas/handler/http_client_spec.rb @@ -181,7 +181,7 @@ class TestHttpClient end end - describe "#build_http_query" do + describe "#build_query" do it "returns the correct query params" do uri = URI.parse("https://test.api.nylas.com/foo") params = { @@ -190,7 +190,7 @@ class TestHttpClient map: { key1: "value1", key2: "value2" } } - final_uri = http_client.send(:build_http_query, uri, params) + final_uri = http_client.send(:build_query, uri, params) expect(final_uri.to_s).to eq("https://test.api.nylas.com/foo?foo=bar&list=a&list=b&list=c&map=key1%3Avalue1&map=key2%3Avalue2") end