From 7fbdaab3ec9de9ce019cf61a4e93cd1f4e482233 Mon Sep 17 00:00:00 2001 From: Manuel Frigerio Date: Tue, 6 Feb 2024 19:46:20 +0000 Subject: [PATCH 1/9] endpoints --- lib/convertkit_v4/client/broadcasts.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 lib/convertkit_v4/client/broadcasts.rb diff --git a/lib/convertkit_v4/client/broadcasts.rb b/lib/convertkit_v4/client/broadcasts.rb new file mode 100644 index 0000000..b8bd979 --- /dev/null +++ b/lib/convertkit_v4/client/broadcasts.rb @@ -0,0 +1,19 @@ +module ConvertkitV4 + class Client + module Broadcasts + + def broadcasts + connection.get("broadcasts").body["broadcasts"] + end + + def broadcast(broadcast_id) + connection.get("broadcasts/#{broadcast_id}").body["broadcast"] + end + + def broadcast_stats(broadcast_id) + connection.get("broadcasts/#{broadcast_id}/stats").body["broadcast"] + end + + end + end +end From 08beda344e18944ad11a6167da68129414a05d2c Mon Sep 17 00:00:00 2001 From: Manuel Frigerio Date: Tue, 6 Feb 2024 19:46:23 +0000 Subject: [PATCH 2/9] specs --- spec/convertkit_v4/client/broadcasts_spec.rb | 43 ++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 spec/convertkit_v4/client/broadcasts_spec.rb diff --git a/spec/convertkit_v4/client/broadcasts_spec.rb b/spec/convertkit_v4/client/broadcasts_spec.rb new file mode 100644 index 0000000..94fed14 --- /dev/null +++ b/spec/convertkit_v4/client/broadcasts_spec.rb @@ -0,0 +1,43 @@ +require "spec_helper" +require "securerandom" + +module ConvertkitV4 + class Client + describe Broadcasts do + before do + ConvertkitV4.configure do |config| + config.api_secret = ENV["API_SECRET"] + config.api_key = ENV["API_KEY"] + end + + @client = ConvertkitV4::Client.new + end + + describe "#broadcasts" do + it "sends the right request" do + r = @client.broadcasts + expect(r.success?).to be_truthy + expect(r.body).to_not eql({"error"=>"Authorization Failed", "message"=>"API Key not present"}) + end + end + + describe "#broadcast" do + it "sends the right request" do + broadcast_id = ENV['BROADCAST_ID'] + + r = @client.broadcast(broadcast_id) + expect(r.success?).to be_truthy + expect(r.body).to_not eql({"error"=>"Not Found", "message"=>"The entity you were trying to find doesn't exist"}) + end + end + + describe "#broadcast_stats" do + it "sends the right request" do + broadcast_id = ENV['BROADCAST_ID'] + + r = @client.broadcast_stats(broadcast_id) + expect(r.success?).to be_truthy + expect(r.body).to_not eql({"error"=>"Not Found", "message"=>"The entity you were trying to find doesn't exist"}) + end + end + end From ab2f9697c231f10c7e500101601f49a573352274 Mon Sep 17 00:00:00 2001 From: Manuel Frigerio Date: Tue, 6 Feb 2024 19:46:28 +0000 Subject: [PATCH 3/9] version updated --- lib/convertkit_v4/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/convertkit_v4/version.rb b/lib/convertkit_v4/version.rb index df04e30..05bdeba 100644 --- a/lib/convertkit_v4/version.rb +++ b/lib/convertkit_v4/version.rb @@ -1,3 +1,3 @@ module ConvertkitV4 - VERSION = "1.0.15" + VERSION = "1.0.16" end From 4cd76cdbed18c5f5806b6772c5d6d327e74865fa Mon Sep 17 00:00:00 2001 From: Manuel Frigerio Date: Tue, 6 Feb 2024 20:20:22 +0000 Subject: [PATCH 4/9] include --- lib/convertkit_v4/client.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/convertkit_v4/client.rb b/lib/convertkit_v4/client.rb index 4a69183..86fe4b5 100644 --- a/lib/convertkit_v4/client.rb +++ b/lib/convertkit_v4/client.rb @@ -2,6 +2,7 @@ require "convertkit_v4/client/custom_fields" require "convertkit_v4/client/forms" require "convertkit_v4/client/sequences" +require "convertkit_v4/client/broadcasts" require "convertkit_v4/client/subscribers" require "convertkit_v4/client/webhooks" require "convertkit_v4/client/tags" @@ -13,6 +14,7 @@ class Client include CustomFields include Forms include Sequences + include Broadcasts include Subscribers include Webhooks include Tags From 04efae62c7384314bd95410325f5dfd8b539bf2e Mon Sep 17 00:00:00 2001 From: Manuel Frigerio Date: Tue, 6 Feb 2024 20:20:50 +0000 Subject: [PATCH 5/9] version --- lib/convertkit_v4/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/convertkit_v4/version.rb b/lib/convertkit_v4/version.rb index 05bdeba..4993468 100644 --- a/lib/convertkit_v4/version.rb +++ b/lib/convertkit_v4/version.rb @@ -1,3 +1,3 @@ module ConvertkitV4 - VERSION = "1.0.16" + VERSION = "1.0.17" end From 647109207dce1b2b7279074599b5b70939732d3d Mon Sep 17 00:00:00 2001 From: Petar Date: Mon, 25 Mar 2024 12:56:45 +0100 Subject: [PATCH 6/9] Switch v4 alpha to v4 version --- lib/convertkit_v4/connection.rb | 2 +- lib/convertkit_v4/version.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/convertkit_v4/connection.rb b/lib/convertkit_v4/connection.rb index cd39a23..1ef4678 100644 --- a/lib/convertkit_v4/connection.rb +++ b/lib/convertkit_v4/connection.rb @@ -8,7 +8,7 @@ class Connection attr_reader :http_connection API_URL = "https://api.convertkit.com/" - API_VERSION_PATH = "alpha/" + API_VERSION_PATH = "v4/" def initialize(access_token: nil) @http_connection = faraday_connection(access_token) diff --git a/lib/convertkit_v4/version.rb b/lib/convertkit_v4/version.rb index 4993468..6c4726f 100644 --- a/lib/convertkit_v4/version.rb +++ b/lib/convertkit_v4/version.rb @@ -1,3 +1,3 @@ module ConvertkitV4 - VERSION = "1.0.17" + VERSION = "1.0.18" end From d54633298af98d6d8e47c85ee91f5892487f413d Mon Sep 17 00:00:00 2001 From: Petar Date: Mon, 25 Mar 2024 13:06:29 +0100 Subject: [PATCH 7/9] The returned tag is nested under a tag attribute --- lib/convertkit_v4/client/tags.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/convertkit_v4/client/tags.rb b/lib/convertkit_v4/client/tags.rb index be45066..d39e6e2 100644 --- a/lib/convertkit_v4/client/tags.rb +++ b/lib/convertkit_v4/client/tags.rb @@ -12,7 +12,7 @@ def create_tag(tag_name) name: tag_name }) end - response.body + response.body["tag"] end def add_subscriber_to_tag(tag_id, options = {}) From 1cb57119ddcdd234973c618f3d59f75ba357ff6e Mon Sep 17 00:00:00 2001 From: belen mareque Date: Tue, 21 May 2024 09:50:16 +0200 Subject: [PATCH 8/9] changes subscribers unsubscribed endpoint and update API link --- README.md | 2 +- lib/convertkit_v4/client/subscribers.rb | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 13e9133..62afb1e 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ API actions are available as methods on the client object. Currently, the Conver **Note:** We do not have complete API coverage yet. If we are missing an API method that you need to use in your application, please file an issue and/or open a pull request. -[See the official API documentation](http://kb.convertkit.com/article/api-documentation-v3/) for a complete API reference. +[See the official API documentation](https://developers.convertkit.com/v4.html) for a complete API reference. ## Use Cases diff --git a/lib/convertkit_v4/client/subscribers.rb b/lib/convertkit_v4/client/subscribers.rb index 41915ad..da34ed6 100644 --- a/lib/convertkit_v4/client/subscribers.rb +++ b/lib/convertkit_v4/client/subscribers.rb @@ -37,11 +37,7 @@ def update_subscriber(subscriber_id, options = {}) end def unsubscribe(subscriber_id) - connection.post("unsubscribe") do |f| - f.body = JSON.generate({ - id: subscriber_id - }) - end + connection.post("subscribers/#{subscriber_id}/unsubscribe").body end def subscriber_tags(subscriber_id) From 4895cc84a5e2e3c825bfa06ce153fdc5c53158e9 Mon Sep 17 00:00:00 2001 From: belen mareque Date: Tue, 21 May 2024 10:41:31 +0200 Subject: [PATCH 9/9] update unsubscribe endpoint --- lib/convertkit_v4/client/subscribers.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/convertkit_v4/client/subscribers.rb b/lib/convertkit_v4/client/subscribers.rb index da34ed6..f22326a 100644 --- a/lib/convertkit_v4/client/subscribers.rb +++ b/lib/convertkit_v4/client/subscribers.rb @@ -37,7 +37,7 @@ def update_subscriber(subscriber_id, options = {}) end def unsubscribe(subscriber_id) - connection.post("subscribers/#{subscriber_id}/unsubscribe").body + connection.post("subscribers/#{subscriber_id}/unsubscribe") end def subscriber_tags(subscriber_id)