Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions lib/appboy/api.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,17 @@ class API
include Appboy::Endpoints::TriggerCanvas

def export_users(**payload)
Appboy::REST::ExportUsers.new.perform(app_group_id, payload)
Appboy::REST::ExportUsers.new(api_key).perform(payload)
end

def list_segments
Appboy::REST::ListSegments.new.perform(app_group_id)
Appboy::REST::ListSegments.new(api_key).perform
end

attr_reader :app_group_id
attr_reader :api_key

def initialize(app_group_id)
@app_group_id = app_group_id
def initialize(api_key)
@api_key = api_key
end
end
end
2 changes: 1 addition & 1 deletion lib/appboy/endpoints/delete_users.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module Appboy
module Endpoints
module DeleteUsers
def delete_users(**payload)
delete_users_service.new(app_group_id, payload).perform
delete_users_service.new(api_key, payload).perform
end

private
Expand Down
2 changes: 1 addition & 1 deletion lib/appboy/endpoints/email_status.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module Appboy
module Endpoints
module EmailStatus
def email_status(**payload)
email_status_service.new(app_group_id, payload).perform
email_status_service.new(api_key, payload).perform
end

def email_status_service
Expand Down
2 changes: 1 addition & 1 deletion lib/appboy/endpoints/schedule_messages.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module Appboy
module Endpoints
module ScheduleMessages
def schedule_messages(**payload)
schedule_messages_service.new(app_group_id, payload).perform
schedule_messages_service.new(api_key, payload).perform
end

private
Expand Down
2 changes: 1 addition & 1 deletion lib/appboy/endpoints/send_messages.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module Appboy
module Endpoints
module SendMessages
def send_messages(**payload)
send_messages_service.new(app_group_id, payload).perform
send_messages_service.new(api_key, payload).perform
end

private
Expand Down
4 changes: 2 additions & 2 deletions lib/appboy/endpoints/track_users.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module TrackUsers
attr_writer :track_users_service

def track_users(**payload)
track_users_service.perform(app_group_id, payload)
track_users_service.perform(payload)
end

def track_purchase(payload)
Expand All @@ -22,7 +22,7 @@ def track_attribute(payload)
private

def track_users_service
@track_users_service ||= Appboy::REST::TrackUsers.new
@track_users_service ||= Appboy::REST::TrackUsers.new(api_key)
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion lib/appboy/endpoints/trigger_campaign.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module Appboy
module Endpoints
module TriggerCampaign
def trigger_campaign(**payload)
trigger_campaign_service.new(app_group_id, payload).perform
trigger_campaign_service.new(api_key, payload).perform
end

private
Expand Down
2 changes: 1 addition & 1 deletion lib/appboy/endpoints/trigger_canvas.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module Appboy
module Endpoints
module TriggerCanvas
def trigger_canvas(**payload)
trigger_canvas_service.new(app_group_id, payload).perform
trigger_canvas_service.new(api_key, payload).perform
end

private
Expand Down
11 changes: 9 additions & 2 deletions lib/appboy/http.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,25 @@

module Appboy
class HTTP
attr_reader :api_key

def initialize(api_key)
@api_key = api_key
end

def post(path, payload)
connection.post path do |request|
request.body = payload
end
end

def get(path, query)
def get(path, query = {})
connection.get path, query
end

def connection
@connection ||= Faraday.new(url: api_host) do |connection|
@connection ||= Faraday.new(url: api_host,
headers: { Authorization: "Bearer #{api_key}" }) do |connection|
connection.request :json

connection.response :logger if ENV['APPBOY_DEBUG']
Expand Down
7 changes: 6 additions & 1 deletion lib/appboy/rest/base.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,16 @@ module Appboy
module REST
class Base
attr_writer :http
attr_reader :api_key

def initialize(api_key)
@api_key = api_key
end

private

def http
@http ||= Appboy::HTTP.new
@http ||= Appboy::HTTP.new(api_key)
end
end
end
Expand Down
7 changes: 3 additions & 4 deletions lib/appboy/rest/delete_users.rb
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
module Appboy
module REST
class DeleteUsers < Base
attr_reader :app_group_id, :external_ids, :appboy_ids
attr_reader :external_ids, :appboy_ids

def initialize(app_group_id, external_ids: [], appboy_ids: [])
@app_group_id = app_group_id
def initialize(api_key, external_ids: [], appboy_ids: [])
super(api_key)
@external_ids = external_ids
@appboy_ids = appboy_ids
end

def perform
http.post '/users/delete', {
app_group_id: app_group_id,
external_ids: external_ids,
appboy_ids: appboy_ids
}
Expand Down
7 changes: 3 additions & 4 deletions lib/appboy/rest/email_status.rb
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
module Appboy
module REST
class EmailStatus < Base
attr_reader :app_group_id, :email, :status
attr_reader :email, :status

def initialize(app_group_id, email:, status:)
@app_group_id = app_group_id
def initialize(api_key, email:, status:)
super(api_key)
@email = email
@status = status
end

def perform
http.post '/email/status', {
app_group_id: app_group_id,
email: email,
subscription_state: status
}
Expand Down
12 changes: 5 additions & 7 deletions lib/appboy/rest/export_users.rb
Original file line number Diff line number Diff line change
@@ -1,24 +1,22 @@
module Appboy
module REST
class ExportUsers < Base
def perform(app_group_id, external_ids: nil, segment_id: nil, **options)
return export_users_by_ids(app_group_id, external_ids) if external_ids
def perform(external_ids: nil, segment_id: nil, **options)
return export_users_by_ids(external_ids) if external_ids

export_users_by_segment(app_group_id, segment_id, options) if segment_id
export_users_by_segment(segment_id, options) if segment_id
end

private

def export_users_by_ids(app_group_id, external_ids)
def export_users_by_ids(external_ids)
http.post '/users/export/ids', {
app_group_id: app_group_id,
external_ids: external_ids
}
end

def export_users_by_segment(app_group_id, segment_id, options)
def export_users_by_segment(segment_id, options)
http.post '/users/export/segment', {
app_group_id: app_group_id,
segment_id: segment_id
}.merge(options)
end
Expand Down
6 changes: 2 additions & 4 deletions lib/appboy/rest/list_segments.rb
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
module Appboy
module REST
class ListSegments < Base
def perform(app_group_id)
http.get '/segments/list', {
app_group_id: app_group_id
}
def perform
http.get '/segments/list'
end
end
end
Expand Down
21 changes: 11 additions & 10 deletions lib/appboy/rest/schedule_messages.rb
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
module Appboy
module REST
class ScheduleMessages < Base
attr_reader :app_group_id, :send_at, :messages, :segment_id, :local_timezone
attr_reader :time, :messages, :external_user_ids, :local_timezone

def initialize(app_group_id, send_at:, messages: [], segment_id: nil, local_timezone: false)
@app_group_id = app_group_id
@send_at = send_at
def initialize(api_key, time:, messages: [], external_user_ids: [], local_timezone: false)
super(api_key)
@time = time
@messages = messages
@segment_id = segment_id
@external_user_ids = external_user_ids
@local_timezone = local_timezone
end

def perform
http.post '/messages/schedule', {
app_group_id: app_group_id,
segment_ids: [segment_id],
send_at: send_at,
deliver_in_local_timezone: local_timezone,
http.post '/messages/schedule/create', {
external_user_ids: external_user_ids,
schedule: {
time: time,
in_local_time: local_timezone
},
messages: messages
}
end
Expand Down
7 changes: 3 additions & 4 deletions lib/appboy/rest/send_messages.rb
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
module Appboy
module REST
class SendMessages < Base
attr_reader :app_group_id, :messages, :external_user_ids, :segment_id
attr_reader :messages, :external_user_ids, :segment_id

def initialize(app_group_id, messages: [], external_user_ids: [], segment_id: nil)
@app_group_id = app_group_id
def initialize(api_key, messages: [], external_user_ids: [], segment_id: nil)
super(api_key)
@messages = messages
@external_user_ids = external_user_ids
@segment_id = segment_id
end

def perform
http.post '/messages/send', {
app_group_id: app_group_id,
messages: messages,
external_user_ids: external_user_ids,
segment_ids: [segment_id].compact
Expand Down
3 changes: 1 addition & 2 deletions lib/appboy/rest/track_users.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
module Appboy
module REST
class TrackUsers < Base
def perform(app_group_id, attributes: [], events: [], purchases: [])
def perform(attributes: [], events: [], purchases: [])
http.post '/users/track', {
app_group_id: app_group_id,
attributes: attributes,
events: events,
purchases: purchases
Expand Down
5 changes: 2 additions & 3 deletions lib/appboy/rest/trigger_campaign.rb
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
module Appboy
module REST
class TriggerCampaign < Base
attr_reader :api_key, :audience, :broadcast, :campaign_id,
attr_reader :audience, :broadcast, :campaign_id,
:recipients, :send_id, :trigger_properties

def initialize(api_key, options = {})
@api_key = api_key
super(api_key)
@audience = options[:audience]
@broadcast = options[:broadcast] || false
@campaign_id = options[:campaign_id]
Expand All @@ -16,7 +16,6 @@ def initialize(api_key, options = {})

def perform
http.post '/campaigns/trigger/send', {
api_key: api_key,
audience: audience,
broadcast: broadcast,
campaign_id: campaign_id,
Expand Down
8 changes: 3 additions & 5 deletions lib/appboy/rest/trigger_canvas.rb
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
module Appboy
module REST
class TriggerCanvas < Base
attr_reader :api_key, :audience, :broadcast, :canvas_id,
:canvas_entry_properties, :recipients
attr_reader :audience, :broadcast, :canvas_id, :canvas_entry_properties, :recipients

def initialize(app_group_id, options = {})
@api_key = app_group_id
def initialize(api_key, options = {})
super(api_key)
@audience = options[:audience]
@broadcast = options[:broadcast] || false
@canvas_entry_properties = options[:canvas_entry_properties]
Expand All @@ -15,7 +14,6 @@ def initialize(app_group_id, options = {})

def perform
http.post '/canvas/trigger/send', {
api_key: api_key,
audience: audience,
broadcast: broadcast,
canvas_entry_properties: canvas_entry_properties,
Expand Down
2 changes: 1 addition & 1 deletion lib/appboy/version.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module Appboy
VERSION = '0.1.6'
VERSION = '0.1.7'
end
12 changes: 6 additions & 6 deletions spec/appboy/endpoints/track_users_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
class API
include Appboy::Endpoints::TrackUsers

def app_group_id
:app_group_id
def api_key
:api_key
end
end

Expand All @@ -25,7 +25,7 @@ def app_group_id

it 'tracks attributes, events and purchases' do
expect(track_users_service).to receive(:perform)
.with(:app_group_id, payload)
.with(payload)

track_users!
end
Expand All @@ -38,7 +38,7 @@ def app_group_id

it 'tracks a single purchase' do
expect(track_users_service).to receive(:perform)
.with(:app_group_id, purchases: [payload])
.with(purchases: [payload])

track_purchase!
end
Expand All @@ -51,7 +51,7 @@ def app_group_id

it 'tracks a single purchase' do
expect(track_users_service).to receive(:perform)
.with(:app_group_id, events: [payload])
.with(events: [payload])

track_event!
end
Expand All @@ -64,7 +64,7 @@ def app_group_id

it 'tracks a single purchase' do
expect(track_users_service).to receive(:perform)
.with(:app_group_id, attributes: [payload])
.with(attributes: [payload])

track_attribute!
end
Expand Down
2 changes: 1 addition & 1 deletion spec/appboy/endpoints/trigger_campaigns_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
class API
include Appboy::Endpoints::TriggerCampaign

def app_group_id
def api_key
:api_key
end
end
Expand Down
Loading