silverpop 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YzIwNDYxYmM2N2M4ZmVjNjQ1MzI2ZjZkOGNkM2M2YTgwYzM2OTc0MA==
4
+ ZjdkNDEyMWVlNjQyODViYWNjYWQ0MDQ2ZjI0NDQ5NGU1YjgwM2Y5Yg==
5
5
  data.tar.gz: !binary |-
6
- NGFkYjI4NzRhNzI3NTZkN2NmNmI2NjgwZmY0NjZhYTc1M2FiYWMzMg==
6
+ OTJiYTM3MTJiMDM5ZWQzNTNiZDg1Nzc3Mzk0YzExYjE5NGVlZmU3Zg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NTMxNjRkMjc4NDQyMGQ1ZTVmODA4MjQyZWJkYTE2MmVlODA0NDA2M2RjNTU2
10
- ZTAxNTA0ZGUzYmRlNmI0MzliNzgyN2FhMTE5NjAyNzQ0NDY5MmUyNDM4Mzk1
11
- ZjhkZjIyYWNlMzdjNGQ3MjQ1NWYwNWI0NmNjOTI4NWNkYzlkZWM=
9
+ Y2E1ZjI5MTMyMDk0ZWViOWFmMmRjZDcxNmYwMzYzYzhjOWExNmVjYzVjZjJl
10
+ ODczNGJhNjZiM2RlYmY4Njg5Y2VmYmY4MzhmYTM2NDlkOWY2ODAzNTkwYTk0
11
+ OTEwNDljZTZiODA3YTZlMjBkNDFlYzI0NTYxNjEwN2NjMmQwYjE=
12
12
  data.tar.gz: !binary |-
13
- MzRkYzc0NTcyZGYyNzFiZWEyNzI2MTU2OWU4MGFmNDAyMjY3OGRmM2ZlNGM0
14
- YzViY2M4ZDZmYjAyZDk5YTZmYTQzZjU3YTM2ZmFmYTMyZjZmYzE0MGE5M2U1
15
- MDIyZGFlOThlMjc0ZTkzNTlhOTEyNTFhMTAwNjcwZmFlZTcyZTY=
13
+ NzUxNWE0OThiZmEwMjc3NDNjYzU1ZWE5MjA1YWE0OTUwYjUzNTkwMTMzMDBi
14
+ YzI3YzIyN2MxZDAxM2FkYmFjZTIxODI4Y2FkZmQzOGM3YjYzMzA1M2I5NmJk
15
+ ZDZhNmM3NDZjMzFmZGFjYWZkOWQ5M2E5OWE1MWFkY2Y1OTZiZTQ=
@@ -0,0 +1,46 @@
1
+ module SilverPop
2
+ class Client
3
+ module User
4
+
5
+ # 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.
6
+ #
7
+ # @param list_id [String] Unique identifier for the database, query, or contact list Engage is exporting.
8
+ # @param export_type [String] Specifies which contacts to export.
9
+ # @param export_format [String] Specifies the format (file type) for the exported data.
10
+ # @param options [Hash] Optional parameters to send
11
+ # @param export_colums [Array] XML node used to request specific custom database columns to export for each contact.
12
+ # @return [Mash] Mashify body from the API call
13
+ # @example Export list 12345 for 1/1/2014 to 1/2/2014
14
+ # s = SilverPop.new({access_token: "abc123", url: "https://api1.silverpop.com"})
15
+ # s.export_list('12345', 'ALL', 'CSV", {DATE_START: "1/1/2014", DATE_END:"1/2/2014"})
16
+ def export_list(list_id, export_type, export_format, options={}, export_columns=[])
17
+ builder = Builder::XmlMarkup.new
18
+ xml = builder.Envelope {
19
+ builder.Body {
20
+ builder.ExportList {
21
+ builder.LIST_ID list_id
22
+ builder.EXPORT_TYPE export_type
23
+ builder.EXPORT_FORMAT export_format
24
+ unless options.empty?
25
+ options.each do |o|
26
+ builder.tag! o[0], o[1]
27
+ end
28
+ end
29
+ unless export_columns.empty?
30
+ builder.EXPORT_COLUMNS {
31
+ export_columns.each do |e|
32
+ builder.COLUMN e
33
+ end
34
+ }
35
+ end
36
+ }
37
+ }
38
+ }
39
+ post(xml)
40
+ end
41
+
42
+ end
43
+ end
44
+ end
45
+
46
+
@@ -3,6 +3,7 @@ require 'silverpop/connection'
3
3
  require 'silverpop/request'
4
4
  require 'client/contact'
5
5
  require 'client/reporting'
6
+ require 'client/user'
6
7
 
7
8
  module SilverPop
8
9
  class Client
@@ -15,5 +16,6 @@ module SilverPop
15
16
  include SilverPop::Request
16
17
  include SilverPop::Client::Contact
17
18
  include SilverPop::Client::Reporting
19
+ include SilverPop::Client::User
18
20
  end
19
21
  end
@@ -1,3 +1,3 @@
1
1
  module SilverPop
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -0,0 +1,28 @@
1
+ require 'helper'
2
+
3
+ describe SilverPop::Client::User do
4
+ before do
5
+ @client = SilverPop.new({access_token: "abc123",url: 'https://api1.silverpop.com'})
6
+ end
7
+
8
+ describe ".export_list" do
9
+ it 'returns the job_id' do
10
+ stub_post("/XMLAPI?access_token=abc123").
11
+ with(:body => "<Envelope><Body><ExportList><LIST_ID>59294</LIST_ID><EXPORT_TYPE>ALL</EXPORT_TYPE><EXPORT_FORMAT>CSV</EXPORT_FORMAT></ExportList></Body></Envelope>").
12
+ to_return(:status => 200, :body => "<Envelope><Body><RESULT><SUCCESS>TRUE</SUCCESS><JOB_ID>499600</JOB_ID><FILE_PATH>file.CSV</FILE_PATH></RESULT></Body></Envelope>", :headers => {'Content-type' => "text/xml"})
13
+
14
+ resp = @client.export_list('59294', 'ALL', 'CSV')
15
+ resp.Envelope.Body.RESULT.JOB_ID.should eql "499600"
16
+ end
17
+
18
+ it 'returns the job_id when passing options' do
19
+ stub_post("/XMLAPI?access_token=abc123").
20
+ with(:body => "<Envelope><Body><ExportList><LIST_ID>59294</LIST_ID><EXPORT_TYPE>ALL</EXPORT_TYPE><EXPORT_FORMAT>CSV</EXPORT_FORMAT><ADD_TO_STORED_FILES/><DATE_START>07/25/2011 12:12:11</DATE_START><DATE_END>09/30/2011 14:14:11</DATE_END><EXPORT_COLUMNS><COLUMN>FIRST_NAME</COLUMN><COLUMN>INITIAL</COLUMN><COLUMN>LAST_NAME</COLUMN></EXPORT_COLUMNS></ExportList></Body></Envelope>").
21
+ to_return(:status => 200, :body => "<Envelope><Body><RESULT><SUCCESS>TRUE</SUCCESS><JOB_ID>499600</JOB_ID><FILE_PATH>file.CSV</FILE_PATH></RESULT></Body></Envelope>", :headers => {'Content-type' => "text/xml"})
22
+
23
+ resp = @client.export_list('59294', 'ALL', 'CSV', {ADD_TO_STORED_FILES: nil, DATE_START: "07/25/2011 12:12:11", DATE_END: "09/30/2011 14:14:11"}, ["FIRST_NAME","INITIAL","LAST_NAME"])
24
+ resp.Envelope.Body.RESULT.JOB_ID.should eql "499600"
25
+ end
26
+
27
+ end
28
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: silverpop
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Upworthy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-10 00:00:00.000000000 Z
11
+ date: 2014-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -153,6 +153,7 @@ files:
153
153
  - Rakefile
154
154
  - lib/client/contact.rb
155
155
  - lib/client/reporting.rb
156
+ - lib/client/user.rb
156
157
  - lib/silverpop.rb
157
158
  - lib/silverpop/client.rb
158
159
  - lib/silverpop/connection.rb
@@ -161,6 +162,7 @@ files:
161
162
  - silverpop.gemspec
162
163
  - spec/client/contact_spec.rb
163
164
  - spec/client/reporting_spec.rb
165
+ - spec/client/user_spec.rb
164
166
  - spec/fixtures/contact.xml
165
167
  - spec/fixtures/reporting.xml
166
168
  - spec/fixtures/sent_mailings_org.xml
@@ -193,6 +195,7 @@ summary: A Ruby wrapper for the SilverPop API
193
195
  test_files:
194
196
  - spec/client/contact_spec.rb
195
197
  - spec/client/reporting_spec.rb
198
+ - spec/client/user_spec.rb
196
199
  - spec/fixtures/contact.xml
197
200
  - spec/fixtures/reporting.xml
198
201
  - spec/fixtures/sent_mailings_org.xml