goacoustic 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/goacoustic.gemspec +2 -2
- data/lib/client/contact.rb +3 -3
- data/lib/client/relational_table.rb +3 -3
- data/lib/client/reporting.rb +4 -4
- data/lib/client/user.rb +2 -2
- data/lib/{acoustic.rb → goacoustic.rb} +6 -6
- data/lib/goacoustic/client.rb +23 -0
- data/lib/{acoustic → goacoustic}/connection.rb +2 -2
- data/lib/{acoustic → goacoustic}/request.rb +2 -2
- data/lib/goacoustic/version.rb +3 -0
- data/spec/client/contact_spec.rb +2 -2
- data/spec/client/relational_table_spec.rb +2 -2
- data/spec/client/reporting_spec.rb +2 -2
- data/spec/client/user_spec.rb +2 -2
- data/spec/goacoustic_spec.rb +15 -0
- data/spec/helper.rb +3 -3
- metadata +8 -8
- data/lib/acoustic/client.rb +0 -23
- data/lib/acoustic/version.rb +0 -3
- data/spec/acoustic_spec.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a3f302e81b48776bbc4131a0ef4aea3849f6ecef29c12159460a462a0e45d8da
|
4
|
+
data.tar.gz: 5a85666558b193c66543a6f7631ef3f201770aaa6fdcebe67a8a8a641159352b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4cb24943d0eda6bdc26e3f0f3e9e2ff1edc2c7a9e36e15cfb3d962737d5ec147d9d3116807bae2e29421148212937ad7baf2b7c46864979ab04e7097d74a9abc
|
7
|
+
data.tar.gz: 791dcda134bd270e961e9d6c8505aa34922e0192aa100672d5ec250fff69e38f77458424c5bd027d034cc496643527e8c96514a77baa6bf56371ea0e15fa1587
|
data/README.md
CHANGED
@@ -11,14 +11,14 @@ A Ruby wrapper for the Acoustic API
|
|
11
11
|
|
12
12
|
|
13
13
|
## Usage Examples
|
14
|
-
require '
|
14
|
+
require 'goacoustic'
|
15
15
|
require 'oauth2'
|
16
16
|
|
17
17
|
#Generate your OAuth2 access token
|
18
18
|
client = OAuth2::Client.new(ACOUSTIC_CLIENT_ID, ACOUSTIC_CLIENT_SECRET, site: "https://api-campaign-us-1.goacoustic.com/oauth/token")
|
19
19
|
access_token = OAuth2::AccessToken.from_hash(client, refresh_token: ACOUSTIC_REFRESH_TOKEN).refresh!
|
20
20
|
|
21
|
-
@client =
|
21
|
+
@client = GoAcoustic.new({access_token: access_token.token, url: "https://api-campaign-us-1.goacoustic.com"})
|
22
22
|
|
23
23
|
#add_recipeint
|
24
24
|
#pass in user variables, database contact list, and contact list id
|
data/goacoustic.gemspec
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
require File.expand_path('../lib/
|
2
|
+
require File.expand_path('../lib/goacoustic/version', __FILE__)
|
3
3
|
|
4
4
|
Gem::Specification.new do |gem|
|
5
5
|
gem.add_dependency 'addressable', '~> 2.7'
|
@@ -22,5 +22,5 @@ Gem::Specification.new do |gem|
|
|
22
22
|
gem.require_paths = ['lib']
|
23
23
|
gem.summary = gem.description
|
24
24
|
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
25
|
-
gem.version =
|
25
|
+
gem.version = GoAcoustic::VERSION
|
26
26
|
end
|
data/lib/client/contact.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
-
module
|
1
|
+
module GoAcoustic
|
2
2
|
class Client
|
3
3
|
module Contact
|
4
4
|
|
5
5
|
# Adds one new contact to an existing database.
|
6
6
|
#
|
7
|
-
# @param fields [Hash] The list of fields to be passed into
|
7
|
+
# @param fields [Hash] The list of fields to be passed into GoAcoustic.
|
8
8
|
# @param list_id [Integer] The ID of the database which you are adding the contact
|
9
9
|
# @param contact_list_id [Array] The id of the contact list.
|
10
10
|
# @return [Mash] Mashify body from the API call
|
11
11
|
# @example Add a new email to the database and contact list
|
12
|
-
# s =
|
12
|
+
# s = GoAcoustic::Client.new(access_token)
|
13
13
|
# s.add_recipient({email: "test@example.com", firstname: "Hello"}, 12345, [4567])
|
14
14
|
def add_recipient(fields, list_id, contact_list_id=nil, created_from=1, options={})
|
15
15
|
builder = Builder::XmlMarkup.new
|
@@ -1,4 +1,4 @@
|
|
1
|
-
module
|
1
|
+
module GoAcoustic
|
2
2
|
class Client
|
3
3
|
module RelationalTable
|
4
4
|
# InsertUpdateRelationalTable - This interface inserts or updates relational data.
|
@@ -7,7 +7,7 @@ module Acoustic
|
|
7
7
|
# @param rows [Array]
|
8
8
|
# @return [Mash] Mashify body from the API call
|
9
9
|
# @example Insert into table 86767 a row with one column
|
10
|
-
# s =
|
10
|
+
# s = GoAcoustic.new access_token: 'abc123', url: 'https://api-campaign-us-1.goacoustic.com'
|
11
11
|
# s.insert_update_relational_table '86767', [{'Record Id' => 'GHbjh73643hsdiy'}]
|
12
12
|
def insert_update_relational_table table_id, rows
|
13
13
|
builder = Builder::XmlMarkup.new
|
@@ -43,7 +43,7 @@ module Acoustic
|
|
43
43
|
# @param export_colums [Array] XML node used to request specific custom database columns to export for each contact.
|
44
44
|
# @return [Mash] Mashify body from the API call
|
45
45
|
# @example Export Table 12345 for 1/1/2014 to 1/2/2014
|
46
|
-
# s =
|
46
|
+
# s = GoAcoustic.new({access_token: "abc123", url: "https://api-campaign-us-1.goacoustic.com"})
|
47
47
|
# s.export_table('12345', 'CSV', {DATE_START: "1/1/2014", DATE_END:"1/2/2014"})
|
48
48
|
def export_table(table_id, export_format, options={})
|
49
49
|
builder = Builder::XmlMarkup.new
|
data/lib/client/reporting.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
module
|
1
|
+
module GoAcoustic
|
2
2
|
class Client
|
3
3
|
module Reporting
|
4
4
|
|
@@ -9,7 +9,7 @@ module Acoustic
|
|
9
9
|
# @param options [Hash] Optional parameters to send
|
10
10
|
# @return [Mash] Mashify body from the API call
|
11
11
|
# @example Get sent mailing for organization for 1/1/2014 to 1/2/2014
|
12
|
-
# s =
|
12
|
+
# s = GoAcoustic.new({access_token: "abc123", url: "https://api-campaign-us-1.goacoustic.com"})
|
13
13
|
# s.get_sent_mailings_for_org("1/1/2014", "1/2/2014)
|
14
14
|
def get_sent_mailings_for_org(date_start, date_end, options={})
|
15
15
|
builder = Builder::XmlMarkup.new
|
@@ -36,7 +36,7 @@ module Acoustic
|
|
36
36
|
# @param columns [Array] Optional list of columns to limit the flat file.
|
37
37
|
# @return [Mash] Mashify body from the API call
|
38
38
|
# @example Export raw data events for mailing id
|
39
|
-
# s =
|
39
|
+
# s = GoAcoustic.new({access_token: "abc123", url: "https://api-campaign-us-1.goacoustic.com"})
|
40
40
|
# s.raw_recipient_data_export({MAILING_ID: 1234},{MOVE_TO_FTP: nil})
|
41
41
|
def raw_recipient_data_export(query_params={}, options={}, columns=[])
|
42
42
|
builder = Builder::XmlMarkup.new
|
@@ -79,7 +79,7 @@ module Acoustic
|
|
79
79
|
# @param job_id [Integer] The Job ID of the data job
|
80
80
|
# @return [Mash] Mashify body from the API call
|
81
81
|
# @example Get Job Status for JOB_ID 1234
|
82
|
-
# s =
|
82
|
+
# s = GoAcoustic.new({access_token: "abc123", url: "https://api-campaign-us-1.goacoustic.com"})
|
83
83
|
# s.get_job_status(1234)
|
84
84
|
def get_job_status(job_id)
|
85
85
|
builder = Builder::XmlMarkup.new
|
data/lib/client/user.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
module
|
1
|
+
module GoAcoustic
|
2
2
|
class Client
|
3
3
|
module User
|
4
4
|
# ExportList - This interface exports contact data from a database, query, or contact list. Engage exports the results to a CSV file, then adds that file to the FTP account associated with the current session.
|
@@ -10,7 +10,7 @@ module Acoustic
|
|
10
10
|
# @param export_colums [Array] XML node used to request specific custom database columns to export for each contact.
|
11
11
|
# @return [Mash] Mashify body from the API call
|
12
12
|
# @example Export list 12345 for 1/1/2014 to 1/2/2014
|
13
|
-
# s =
|
13
|
+
# s = GoAcoustic.new({access_token: "abc123", url: "https://api-campaign-us-1.goacoustic.com"})
|
14
14
|
# s.export_list('12345', 'ALL', 'CSV", {DATE_START: "1/1/2014", DATE_END:"1/2/2014"})
|
15
15
|
def export_list(list_id, export_type, export_format, options={}, export_columns=[])
|
16
16
|
builder = Builder::XmlMarkup.new
|
@@ -1,15 +1,15 @@
|
|
1
|
-
require '
|
1
|
+
require 'goacoustic/client'
|
2
2
|
|
3
|
-
module
|
3
|
+
module GoAcoustic
|
4
4
|
class << self
|
5
|
-
# Alias for
|
5
|
+
# Alias for GoAcoustic::Client.new
|
6
6
|
#
|
7
|
-
# @return [
|
7
|
+
# @return [GoAcoustic::Client]
|
8
8
|
def new(options={})
|
9
|
-
|
9
|
+
GoAcoustic::Client.new(options)
|
10
10
|
end
|
11
11
|
|
12
|
-
# Delegate to
|
12
|
+
# Delegate to GoAcoustic::Client.new
|
13
13
|
def method_missing(method, *args, &block)
|
14
14
|
return super unless new.respond_to?(method)
|
15
15
|
new.send(method, *args, &block)
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'builder'
|
2
|
+
require 'goacoustic/connection'
|
3
|
+
require 'goacoustic/request'
|
4
|
+
require 'client/contact'
|
5
|
+
require 'client/reporting'
|
6
|
+
require 'client/user'
|
7
|
+
require 'client/relational_table'
|
8
|
+
|
9
|
+
module GoAcoustic
|
10
|
+
class Client
|
11
|
+
def initialize(options={})
|
12
|
+
@access_token = options[:access_token]
|
13
|
+
@goacoustic_url = options[:url]
|
14
|
+
end
|
15
|
+
|
16
|
+
include GoAcoustic::Connection
|
17
|
+
include GoAcoustic::Request
|
18
|
+
include GoAcoustic::Client::Contact
|
19
|
+
include GoAcoustic::Client::Reporting
|
20
|
+
include GoAcoustic::Client::User
|
21
|
+
include GoAcoustic::Client::RelationalTable
|
22
|
+
end
|
23
|
+
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'faraday_middleware'
|
2
2
|
|
3
|
-
module
|
3
|
+
module GoAcoustic
|
4
4
|
# @private
|
5
5
|
module Connection
|
6
6
|
private
|
7
7
|
|
8
8
|
def connection(options={})
|
9
|
-
connection = Faraday.new @
|
9
|
+
connection = Faraday.new @goacoustic_url do |conn|
|
10
10
|
# Uncomment if want to log to stdout
|
11
11
|
#conn.response :logger
|
12
12
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
module
|
1
|
+
module GoAcoustic
|
2
2
|
module Request
|
3
3
|
def post(body)
|
4
4
|
request(:post, body)
|
@@ -6,7 +6,7 @@ module Acoustic
|
|
6
6
|
|
7
7
|
private
|
8
8
|
|
9
|
-
# POST the XML to the
|
9
|
+
# POST the XML to the GoAcoustic end point.
|
10
10
|
#
|
11
11
|
# @param body [String] The formatted XML of the API call make sure to call builder.to_xml.
|
12
12
|
# @return [XML] XML Body from the API call
|
data/spec/client/contact_spec.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
|
-
describe
|
3
|
+
describe GoAcoustic::Client::Contact do
|
4
4
|
before do
|
5
|
-
@client =
|
5
|
+
@client = GoAcoustic::Client.new({access_token: "abc123",url: 'https://api-campaign-us-1.goacoustic.com'})
|
6
6
|
end
|
7
7
|
|
8
8
|
describe "#add_recipient" do
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
|
-
describe
|
3
|
+
describe GoAcoustic::Client::RelationalTable do
|
4
4
|
before do
|
5
|
-
@client =
|
5
|
+
@client = GoAcoustic.new access_token: 'abc123', url: 'https://api-campaign-us-1.goacoustic.com'
|
6
6
|
end
|
7
7
|
|
8
8
|
describe '.insert_update_relational_table' do
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
|
-
describe
|
3
|
+
describe GoAcoustic::Client::Reporting do
|
4
4
|
before do
|
5
|
-
@client =
|
5
|
+
@client = GoAcoustic.new({access_token: "abc123",url: 'https://api-campaign-us-1.goacoustic.com'})
|
6
6
|
end
|
7
7
|
|
8
8
|
describe ".get_sent_mailings_for_org" do
|
data/spec/client/user_spec.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
|
-
describe
|
3
|
+
describe GoAcoustic::Client::User do
|
4
4
|
before do
|
5
|
-
@client =
|
5
|
+
@client = GoAcoustic.new({access_token: "abc123",url: 'https://api-campaign-us-1.goacoustic.com'})
|
6
6
|
end
|
7
7
|
|
8
8
|
describe ".export_list" do
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe GoAcoustic do
|
4
|
+
describe ".new" do
|
5
|
+
it "should be a new GoAcoustic::Client" do
|
6
|
+
expect(GoAcoustic.new).to be_a GoAcoustic::Client
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe ".respond_to?" do
|
11
|
+
pending it "should be true if method exists" do
|
12
|
+
expect(GoAcoustic.respond_to?(:new, true)).to be_true
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/spec/helper.rb
CHANGED
@@ -4,13 +4,13 @@ unless ENV['CI']
|
|
4
4
|
add_filter 'spec'
|
5
5
|
end
|
6
6
|
end
|
7
|
-
require '
|
7
|
+
require 'goacoustic'
|
8
8
|
require 'rspec'
|
9
9
|
require 'webmock/rspec'
|
10
10
|
require 'pry'
|
11
11
|
|
12
12
|
def stub_post(url)
|
13
|
-
stub_request(:post,
|
13
|
+
stub_request(:post, goacoustic_url(url))
|
14
14
|
end
|
15
15
|
|
16
16
|
def fixture_path
|
@@ -21,6 +21,6 @@ def fixture(file)
|
|
21
21
|
File.new(fixture_path + '/' + file)
|
22
22
|
end
|
23
23
|
|
24
|
-
def
|
24
|
+
def goacoustic_url(url)
|
25
25
|
"https://api-campaign-us-1.goacoustic.com#{url}"
|
26
26
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: goacoustic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Anderson, Upworthy
|
@@ -152,16 +152,15 @@ files:
|
|
152
152
|
- README.md
|
153
153
|
- Rakefile
|
154
154
|
- goacoustic.gemspec
|
155
|
-
- lib/acoustic.rb
|
156
|
-
- lib/acoustic/client.rb
|
157
|
-
- lib/acoustic/connection.rb
|
158
|
-
- lib/acoustic/request.rb
|
159
|
-
- lib/acoustic/version.rb
|
160
155
|
- lib/client/contact.rb
|
161
156
|
- lib/client/relational_table.rb
|
162
157
|
- lib/client/reporting.rb
|
163
158
|
- lib/client/user.rb
|
164
|
-
-
|
159
|
+
- lib/goacoustic.rb
|
160
|
+
- lib/goacoustic/client.rb
|
161
|
+
- lib/goacoustic/connection.rb
|
162
|
+
- lib/goacoustic/request.rb
|
163
|
+
- lib/goacoustic/version.rb
|
165
164
|
- spec/client/contact_spec.rb
|
166
165
|
- spec/client/relational_table_spec.rb
|
167
166
|
- spec/client/reporting_spec.rb
|
@@ -170,6 +169,7 @@ files:
|
|
170
169
|
- spec/fixtures/relational_table.xml
|
171
170
|
- spec/fixtures/reporting.xml
|
172
171
|
- spec/fixtures/sent_mailings_org.xml
|
172
|
+
- spec/goacoustic_spec.rb
|
173
173
|
- spec/helper.rb
|
174
174
|
homepage: http://www.github.com/harman-signal-processing/goacoustic
|
175
175
|
licenses:
|
@@ -195,7 +195,6 @@ signing_key:
|
|
195
195
|
specification_version: 4
|
196
196
|
summary: A Ruby wrapper for the Acoustic API
|
197
197
|
test_files:
|
198
|
-
- spec/acoustic_spec.rb
|
199
198
|
- spec/client/contact_spec.rb
|
200
199
|
- spec/client/relational_table_spec.rb
|
201
200
|
- spec/client/reporting_spec.rb
|
@@ -204,4 +203,5 @@ test_files:
|
|
204
203
|
- spec/fixtures/relational_table.xml
|
205
204
|
- spec/fixtures/reporting.xml
|
206
205
|
- spec/fixtures/sent_mailings_org.xml
|
206
|
+
- spec/goacoustic_spec.rb
|
207
207
|
- spec/helper.rb
|
data/lib/acoustic/client.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'builder'
|
2
|
-
require 'acoustic/connection'
|
3
|
-
require 'acoustic/request'
|
4
|
-
require 'client/contact'
|
5
|
-
require 'client/reporting'
|
6
|
-
require 'client/user'
|
7
|
-
require 'client/relational_table'
|
8
|
-
|
9
|
-
module Acoustic
|
10
|
-
class Client
|
11
|
-
def initialize(options={})
|
12
|
-
@access_token = options[:access_token]
|
13
|
-
@acoustic_url = options[:url]
|
14
|
-
end
|
15
|
-
|
16
|
-
include Acoustic::Connection
|
17
|
-
include Acoustic::Request
|
18
|
-
include Acoustic::Client::Contact
|
19
|
-
include Acoustic::Client::Reporting
|
20
|
-
include Acoustic::Client::User
|
21
|
-
include Acoustic::Client::RelationalTable
|
22
|
-
end
|
23
|
-
end
|
data/lib/acoustic/version.rb
DELETED
data/spec/acoustic_spec.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'helper'
|
2
|
-
|
3
|
-
describe Acoustic do
|
4
|
-
describe ".new" do
|
5
|
-
it "should be a new Acoustic::Client" do
|
6
|
-
expect(Acoustic.new).to be_a Acoustic::Client
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
describe ".respond_to?" do
|
11
|
-
pending it "should be true if method exists" do
|
12
|
-
expect(Acoustic.respond_to?(:new, true)).to be_true
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|