From e182b9b69db2d1b88ac5f8c9986edbadf69ae105 Mon Sep 17 00:00:00 2001 From: Gabriel Lima Date: Thu, 11 Jul 2024 17:19:48 -0300 Subject: [PATCH 01/11] =?UTF-8?q?Adicionado=20op=C3=A7=C3=A3o=20de=20confi?= =?UTF-8?q?gurar=20o=20token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/convert_api/configuration.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/convert_api/configuration.rb b/lib/convert_api/configuration.rb index bcd43f5..8f0783c 100644 --- a/lib/convert_api/configuration.rb +++ b/lib/convert_api/configuration.rb @@ -1,6 +1,7 @@ module ConvertApi class Configuration attr_accessor :api_secret + attr_accessor :token attr_accessor :base_uri attr_accessor :connect_timeout attr_accessor :read_timeout From 5998176b3c8a5f2c532216b6bc444c279efaf323 Mon Sep 17 00:00:00 2001 From: Gabriel Lima Date: Thu, 11 Jul 2024 17:21:38 -0300 Subject: [PATCH 02/11] Utilizando config de token no lugar do api_secret --- lib/convert_api/client.rb | 6 +++--- lib/convert_api/errors.rb | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/convert_api/client.rb b/lib/convert_api/client.rb index 59489e7..3309c23 100644 --- a/lib/convert_api/client.rb +++ b/lib/convert_api/client.rb @@ -101,10 +101,10 @@ def http(options = {}) end def request_uri(path, params = {}) - raise(SecretError, 'API secret not configured') if config.api_secret.nil? + raise(TokenError, 'Token not configured') if config.token.nil? - params_with_secret = params.merge(Secret: config.api_secret) - query = URI.encode_www_form(params_with_secret) + params_with_token = params.merge(Token: config.token) + query = URI.encode_www_form(params_with_token) base_uri.path + path + '?' + query end diff --git a/lib/convert_api/errors.rb b/lib/convert_api/errors.rb index ccff5ad..0512ac1 100644 --- a/lib/convert_api/errors.rb +++ b/lib/convert_api/errors.rb @@ -1,6 +1,7 @@ module ConvertApi class Error < StandardError; end class SecretError < Error; end + class TokenError < Error; end class FileNameError < Error; end class TimeoutError < Error; end class ConnectionFailed < Error; end From dd980e7b8107039de9cb199fc655559e19db723f Mon Sep 17 00:00:00 2001 From: Gabriel Lima Date: Thu, 11 Jul 2024 17:23:43 -0300 Subject: [PATCH 03/11] Ajustado teste para validar o token no lugar do api_secret --- spec/convert_api_spec.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/spec/convert_api_spec.rb b/spec/convert_api_spec.rb index 14df27f..9cdaac7 100644 --- a/spec/convert_api_spec.rb +++ b/spec/convert_api_spec.rb @@ -10,15 +10,18 @@ describe '.configure' do let(:api_secret) { 'test_secret' } + let(:token) { 'test_token' } let(:conversion_timeout) { 20 } it 'configures' do described_class.configure do |config| config.api_secret = api_secret + config.token = token config.conversion_timeout = conversion_timeout end expect(described_class.config.api_secret).to eq(api_secret) + expect(described_class.config.token).to eq(token) expect(described_class.config.conversion_timeout).to eq(conversion_timeout) end end @@ -89,11 +92,11 @@ it_behaves_like 'successful conversion' end - context 'when secret is not set' do - before { ConvertApi.config.api_secret = nil } + context 'when token is not set' do + before { ConvertApi.config.token = nil } it 'raises error' do - expect { subject }.to raise_error(ConvertApi::SecretError, /not configured/) + expect { subject }.to raise_error(ConvertApi::TokenError, /not configured/) end end From 770f6d834e3a25d8196753b392c3989c675be034 Mon Sep 17 00:00:00 2001 From: Gabriel Lima Date: Fri, 12 Jul 2024 10:16:07 -0300 Subject: [PATCH 04/11] ajustado teste para secret --- spec/convert_api_spec.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spec/convert_api_spec.rb b/spec/convert_api_spec.rb index 9cdaac7..b066aa6 100644 --- a/spec/convert_api_spec.rb +++ b/spec/convert_api_spec.rb @@ -92,11 +92,11 @@ it_behaves_like 'successful conversion' end - context 'when token is not set' do - before { ConvertApi.config.token = nil } + context 'when secret is not set' do + before { ConvertApi.config.api_secret = nil } it 'raises error' do - expect { subject }.to raise_error(ConvertApi::TokenError, /not configured/) + expect { subject }.to raise_error(ConvertApi::SecretError, /not configured/) end end From 2cacdaed51c4eb44b6e3f32bab75e2e20dc4f350 Mon Sep 17 00:00:00 2001 From: Gabriel Lima Date: Fri, 12 Jul 2024 10:24:58 -0300 Subject: [PATCH 05/11] Ajustado teste validando erro de secret em branco, para agr validar o token --- spec/convert_api_spec.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spec/convert_api_spec.rb b/spec/convert_api_spec.rb index b066aa6..9cdaac7 100644 --- a/spec/convert_api_spec.rb +++ b/spec/convert_api_spec.rb @@ -92,11 +92,11 @@ it_behaves_like 'successful conversion' end - context 'when secret is not set' do - before { ConvertApi.config.api_secret = nil } + context 'when token is not set' do + before { ConvertApi.config.token = nil } it 'raises error' do - expect { subject }.to raise_error(ConvertApi::SecretError, /not configured/) + expect { subject }.to raise_error(ConvertApi::TokenError, /not configured/) end end From 2d8c54696263acfb9463094c6d10a1c60cd7011c Mon Sep 17 00:00:00 2001 From: Gabriel Lima Date: Fri, 12 Jul 2024 10:33:12 -0300 Subject: [PATCH 06/11] =?UTF-8?q?Ajustado=20teste=20quando=20a=20falta=20d?= =?UTF-8?q?e=20autentica=C3=A7=C3=A3o=20valida?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spec/convert_api_spec.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/convert_api_spec.rb b/spec/convert_api_spec.rb index 9cdaac7..d504fa3 100644 --- a/spec/convert_api_spec.rb +++ b/spec/convert_api_spec.rb @@ -93,18 +93,18 @@ end context 'when token is not set' do - before { ConvertApi.config.token = nil } + before { described_class.config.token = nil } it 'raises error' do expect { subject }.to raise_error(ConvertApi::TokenError, /not configured/) end end - context 'with invalid secret' do - before { ConvertApi.config.api_secret = 'invalid' } + context 'with invalid token' do + before { described_class.config.token = 'invalid' } it 'raises error' do - expect { subject }.to raise_error(ConvertApi::ClientError, /bad secret/) + expect { subject }.to raise_error(ConvertApi::ClientError) end end From 181165d6947e14b55869e617b4f51aba45d80ddb Mon Sep 17 00:00:00 2001 From: Gabriel Lima Date: Fri, 12 Jul 2024 11:39:04 -0300 Subject: [PATCH 07/11] =?UTF-8?q?Ajustado=20utiliza=C3=A7=C3=A3o=20do=20to?= =?UTF-8?q?ken,=20como=20opcional=20e=20sempre=20tentando=20utilizado=20pr?= =?UTF-8?q?imeiro?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/convert_api/client.rb | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/lib/convert_api/client.rb b/lib/convert_api/client.rb index 3309c23..e2d61e8 100644 --- a/lib/convert_api/client.rb +++ b/lib/convert_api/client.rb @@ -101,10 +101,10 @@ def http(options = {}) end def request_uri(path, params = {}) - raise(TokenError, 'Token not configured') if config.token.nil? + raised_without_authentication - params_with_token = params.merge(Token: config.token) - query = URI.encode_www_form(params_with_token) + params_with_authentication = params.merge(current_authentication) + query = URI.encode_www_form(params_with_authentication) base_uri.path + path + '?' + query end @@ -123,6 +123,19 @@ def build_form_data(params) data end + def raised_without_authentication + return unless current_authentication.nil? + + raise(SecretError, 'API secret not configured') + end + + def current_authentication + return { Token: config.token } unless config.token.nil? + return { Secret: config.api_secret } unless config.api_secret.nil? + + nil + end + def base_uri config.base_uri end From 70bd2d2add27c1d2c4e4cb5640b10b7ea447e3fa Mon Sep 17 00:00:00 2001 From: Gabriel Lima Date: Fri, 12 Jul 2024 11:51:19 -0300 Subject: [PATCH 08/11] Ajustado raise --- lib/convert_api/client.rb | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/lib/convert_api/client.rb b/lib/convert_api/client.rb index e2d61e8..c723633 100644 --- a/lib/convert_api/client.rb +++ b/lib/convert_api/client.rb @@ -101,7 +101,7 @@ def http(options = {}) end def request_uri(path, params = {}) - raised_without_authentication + raise(SecretError, 'API secret not configured') if current_authentication.nil? params_with_authentication = params.merge(current_authentication) query = URI.encode_www_form(params_with_authentication) @@ -123,12 +123,6 @@ def build_form_data(params) data end - def raised_without_authentication - return unless current_authentication.nil? - - raise(SecretError, 'API secret not configured') - end - def current_authentication return { Token: config.token } unless config.token.nil? return { Secret: config.api_secret } unless config.api_secret.nil? From ee4745c94cc1035632239c7fbefca483ef45a180 Mon Sep 17 00:00:00 2001 From: Gabriel Lima Date: Fri, 12 Jul 2024 11:53:47 -0300 Subject: [PATCH 09/11] =?UTF-8?q?Ajustado=20nome=20do=20m=C3=A9todo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/convert_api/client.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/convert_api/client.rb b/lib/convert_api/client.rb index c723633..4f290f1 100644 --- a/lib/convert_api/client.rb +++ b/lib/convert_api/client.rb @@ -101,9 +101,9 @@ def http(options = {}) end def request_uri(path, params = {}) - raise(SecretError, 'API secret not configured') if current_authentication.nil? + raise(SecretError, 'API secret not configured') if authentication.nil? - params_with_authentication = params.merge(current_authentication) + params_with_authentication = params.merge(authentication) query = URI.encode_www_form(params_with_authentication) base_uri.path + path + '?' + query @@ -123,7 +123,7 @@ def build_form_data(params) data end - def current_authentication + def authentication return { Token: config.token } unless config.token.nil? return { Secret: config.api_secret } unless config.api_secret.nil? From 0985ecd866161b91902d2cc07fd155a2df07b1e5 Mon Sep 17 00:00:00 2001 From: Gabriel Lima Date: Fri, 12 Jul 2024 12:22:27 -0300 Subject: [PATCH 10/11] =?UTF-8?q?Ajustado=20erro=20de=20autentica=C3=A7?= =?UTF-8?q?=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/convert_api/client.rb | 2 +- lib/convert_api/errors.rb | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/convert_api/client.rb b/lib/convert_api/client.rb index 4f290f1..e028ef4 100644 --- a/lib/convert_api/client.rb +++ b/lib/convert_api/client.rb @@ -101,7 +101,7 @@ def http(options = {}) end def request_uri(path, params = {}) - raise(SecretError, 'API secret not configured') if authentication.nil? + raise(AuthenticationError, 'API secret or Token not configured') if authentication.nil? params_with_authentication = params.merge(authentication) query = URI.encode_www_form(params_with_authentication) diff --git a/lib/convert_api/errors.rb b/lib/convert_api/errors.rb index 0512ac1..bdf78d0 100644 --- a/lib/convert_api/errors.rb +++ b/lib/convert_api/errors.rb @@ -1,7 +1,6 @@ module ConvertApi class Error < StandardError; end - class SecretError < Error; end - class TokenError < Error; end + class AuthenticationError < Error; end class FileNameError < Error; end class TimeoutError < Error; end class ConnectionFailed < Error; end From 89c869afaf8b7b7bc341ecf86d967979cb893c7a Mon Sep 17 00:00:00 2001 From: Gabriel Lima Date: Fri, 12 Jul 2024 13:03:15 -0300 Subject: [PATCH 11/11] Ajustado testes unitarios --- spec/convert_api_spec.rb | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/spec/convert_api_spec.rb b/spec/convert_api_spec.rb index d504fa3..75ee433 100644 --- a/spec/convert_api_spec.rb +++ b/spec/convert_api_spec.rb @@ -92,18 +92,23 @@ it_behaves_like 'successful conversion' end - context 'when token is not set' do - before { described_class.config.token = nil } + context 'when has error' do + it 'raises error without secret or token' do + described_class.config.api_secret = nil + described_class.config.token = nil - it 'raises error' do - expect { subject }.to raise_error(ConvertApi::TokenError, /not configured/) + expect { subject }.to raise_error(ConvertApi::AuthenticationError, /not configured/) end - end - context 'with invalid token' do - before { described_class.config.token = 'invalid' } + it 'with invalid secret' do + described_class.config.api_secret = 'invalid' + + expect { subject }.to raise_error(ConvertApi::ClientError) + end + + it 'with invalid token' do + described_class.config.token = 'invalid' - it 'raises error' do expect { subject }.to raise_error(ConvertApi::ClientError) end end