Skip to content
Merged
6 changes: 3 additions & 3 deletions lib/convert_api/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions lib/convert_api/configuration.rb
Original file line number Diff line number Diff line change
@@ -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
Expand Down
1 change: 1 addition & 0 deletions lib/convert_api/errors.rb
Original file line number Diff line number Diff line change
@@ -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
Expand Down
15 changes: 9 additions & 6 deletions spec/convert_api_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -89,19 +92,19 @@
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 { described_class.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

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

Expand Down