diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 4ca52a1..5722d72 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -9,10 +9,10 @@ jobs: steps: - uses: actions/checkout@v1 - - name: Set up Ruby 2.6 - uses: actions/setup-ruby@v1 + - name: Set up Ruby 2.6.7 + uses: ruby/setup-ruby@v1 with: - ruby-version: 2.6.x + ruby-version: 2.6.7 - name: Build and test with Rake run: | gem install bundler diff --git a/Gemfile b/Gemfile index eacacf1..8b13e71 100644 --- a/Gemfile +++ b/Gemfile @@ -4,5 +4,5 @@ source 'https://rubygems.org' gemspec gem 'dotenv', '~> 2.1', '>= 2.1.1' -gem 'webmock', '~> 2.1' +gem 'webmock', '~> 3.5' gem 'vcr', '~> 3.0', '>= 3.0.3' diff --git a/lib/convertkit/client.rb b/lib/convertkit/client.rb index 8132d2b..d80e67e 100644 --- a/lib/convertkit/client.rb +++ b/lib/convertkit/client.rb @@ -17,15 +17,16 @@ class Client include Webhooks include Tags - attr_accessor :api_secret, :api_key + attr_accessor :api_secret, :api_key, :integration_key - def initialize( api_key=nil, api_secret=nil ) + def initialize( api_key=nil, api_secret=nil, integration_key=nil ) @api_secret = api_secret || Convertkit.configuration.api_secret @api_key = api_key || Convertkit.configuration.api_key + @integration_key = integration_key || Convertkit.configuration.integration_key end def connection - @connection ||= Connection.new(api_key: api_key, api_secret: api_secret) + @connection ||= Connection.new(api_key: api_key, api_secret: api_secret, integration_key: integration_key) end end end diff --git a/lib/convertkit/configuration.rb b/lib/convertkit/configuration.rb index 07fe421..536d5df 100644 --- a/lib/convertkit/configuration.rb +++ b/lib/convertkit/configuration.rb @@ -1,6 +1,6 @@ module Convertkit class Configuration - attr_accessor :api_secret, :api_key + attr_accessor :api_secret, :api_key, :integration_key attr_accessor :timeout, :open_timeout def initialize diff --git a/lib/convertkit/connection.rb b/lib/convertkit/connection.rb index a3fa832..cdf211e 100644 --- a/lib/convertkit/connection.rb +++ b/lib/convertkit/connection.rb @@ -7,8 +7,8 @@ module Convertkit class Connection attr_reader :http_connection - def initialize(api_key: nil, api_secret: nil) - @http_connection = faraday_connection(api_key, api_secret) + def initialize(api_key: nil, api_secret: nil, integration_key: nil) + @http_connection = faraday_connection(api_key, api_secret, integration_key) end def content_type @@ -33,7 +33,7 @@ def delete(*args, &blk) private - def faraday_connection(api_key, api_secret) + def faraday_connection(api_key, api_secret, integration_key) Faraday.new do |f| f.url_prefix = "https://api.convertkit.com/v3/" f.adapter :net_http @@ -47,6 +47,7 @@ def faraday_connection(api_key, api_secret) f.params['api_secret'] = api_secret if api_secret f.params['api_key'] = api_key if api_key + f.params['integration_key'] = integration_key if integration_key f.response :json, content_type: /\bjson$/ end diff --git a/spec/convertkit/convertkit_spec.rb b/spec/convertkit/convertkit_spec.rb index 875c767..4dd05b3 100644 --- a/spec/convertkit/convertkit_spec.rb +++ b/spec/convertkit/convertkit_spec.rb @@ -30,6 +30,14 @@ expect(Convertkit.configuration.api_key).to eql("new_key") end + it "sets the integration_key value" do + Convertkit.configure do |config| + config.integration_key = "new_key" + end + + expect(Convertkit.configuration.integration_key).to eql("new_key") + end + it "sets the timeout value" do Convertkit.configure do |config| config.timeout = 10