Skip to content
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 2 additions & 0 deletions lib/convertkit_v4/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -13,6 +14,7 @@ class Client
include CustomFields
include Forms
include Sequences
include Broadcasts
include Subscribers
include Webhooks
include Tags
Expand Down
19 changes: 19 additions & 0 deletions lib/convertkit_v4/client/broadcasts.rb
Original file line number Diff line number Diff line change
@@ -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
6 changes: 1 addition & 5 deletions lib/convertkit_v4/client/subscribers.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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")
end

def subscriber_tags(subscriber_id)
Expand Down
2 changes: 1 addition & 1 deletion lib/convertkit_v4/client/tags.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {})
Expand Down
2 changes: 1 addition & 1 deletion lib/convertkit_v4/connection.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion lib/convertkit_v4/version.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module ConvertkitV4
VERSION = "1.0.15"
VERSION = "1.0.18"
end
43 changes: 43 additions & 0 deletions spec/convertkit_v4/client/broadcasts_spec.rb
Original file line number Diff line number Diff line change
@@ -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