emarsys 0.2.3 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +32 -0
- data/README.md +42 -38
- data/lib/emarsys/client.rb +11 -5
- data/lib/emarsys/configuration.rb +54 -0
- data/lib/emarsys/data_object.rb +16 -23
- data/lib/emarsys/data_objects/condition.rb +2 -2
- data/lib/emarsys/data_objects/contact.rb +27 -25
- data/lib/emarsys/data_objects/contact_list.rb +8 -8
- data/lib/emarsys/data_objects/email.rb +19 -19
- data/lib/emarsys/data_objects/email_category.rb +2 -2
- data/lib/emarsys/data_objects/event.rb +8 -8
- data/lib/emarsys/data_objects/export.rb +4 -4
- data/lib/emarsys/data_objects/field.rb +5 -5
- data/lib/emarsys/data_objects/file.rb +8 -8
- data/lib/emarsys/data_objects/folder.rb +2 -2
- data/lib/emarsys/data_objects/form.rb +2 -2
- data/lib/emarsys/data_objects/language.rb +2 -2
- data/lib/emarsys/data_objects/segment.rb +2 -2
- data/lib/emarsys/data_objects/source.rb +6 -6
- data/lib/emarsys/error.rb +4 -0
- data/lib/emarsys/request.rb +9 -8
- data/lib/emarsys/response.rb +9 -11
- data/lib/emarsys/version.rb +1 -1
- data/lib/emarsys.rb +6 -18
- data/spec/emarsys/client_spec.rb +13 -9
- data/spec/emarsys/configuration_spec.rb +22 -0
- data/spec/emarsys/data_object_spec.rb +11 -11
- data/spec/emarsys/data_objects/contact_spec.rb +12 -12
- data/spec/emarsys/data_objects/email_launch_status_spec.rb +1 -1
- data/spec/emarsys/data_objects/email_spec.rb +5 -5
- data/spec/emarsys/data_objects/email_status_code_spec.rb +1 -1
- data/spec/emarsys/data_objects/event_spec.rb +3 -3
- data/spec/emarsys/data_objects/field_spec.rb +1 -1
- data/spec/emarsys/data_objects/file_spec.rb +5 -5
- data/spec/emarsys/data_objects/folder_spec.rb +1 -1
- data/spec/emarsys/data_objects/source_spec.rb +1 -1
- data/spec/emarsys/request_spec.rb +1 -1
- data/spec/emarsys/response_spec.rb +17 -12
- data/spec/emarsys_spec.rb +1 -7
- data/spec/spec_helper.rb +1 -0
- metadata +6 -2
@@ -13,13 +13,13 @@ module Emarsys
|
|
13
13
|
# @return [Hash] List of events
|
14
14
|
# @example
|
15
15
|
# Emarsys::Event.collection
|
16
|
-
def collection
|
17
|
-
get 'event', {}
|
16
|
+
def collection(account: nil)
|
17
|
+
get account, 'event', {}
|
18
18
|
end
|
19
19
|
|
20
20
|
# Trigger an external event
|
21
21
|
#
|
22
|
-
# @param
|
22
|
+
# @param id [Integer, String] The internal emarsys id
|
23
23
|
# @param key_id [Integer, String] The identifer of the key field (e.g. 3 for 'email')
|
24
24
|
# @param external_id [String] The id of the given filed specified with key_id (e.g. 'test@example.com')
|
25
25
|
# @option data [Hash] data hash for transactional mails
|
@@ -27,27 +27,27 @@ module Emarsys
|
|
27
27
|
# @example
|
28
28
|
# Emarsys::Event.trigger(2, 3, 'test@example.com')
|
29
29
|
# Emarsys::Event.trigger(2, 'user_id', 57687, {:global => {:name => "Special Name"}})
|
30
|
-
def trigger(
|
30
|
+
def trigger(id, key_id:, external_id:, data: {}, account: nil)
|
31
31
|
transformed_key_id = transform_key_id(key_id)
|
32
32
|
params = {:key_id => transformed_key_id, :external_id => external_id}
|
33
33
|
params.merge!(:data => data) if not data.empty?
|
34
|
-
post "event/#{
|
34
|
+
post account, "event/#{id}/trigger", params
|
35
35
|
end
|
36
36
|
|
37
37
|
# Trigger an external event for multiple contacts
|
38
38
|
#
|
39
|
-
# @param
|
39
|
+
# @param id [Integer, String] The internal emarsys id
|
40
40
|
# @param key_id [Integer, String] The identifer of the key field (e.g. 3 for 'email')
|
41
41
|
# @param contacts [Array, Hash] An array with hashes containing the contacts and optional data per contact
|
42
42
|
# @return [Hash] Result data
|
43
43
|
# @example
|
44
44
|
# Emarsys::Event.trigger_multiple(2, 3, [{:external_id => "test@example.com"},{:external_id => "test2@example.com", :data => {:name => "Special Name"}}])
|
45
|
-
def trigger_multiple(
|
45
|
+
def trigger_multiple(id, key_id:, contacts:, account: nil)
|
46
46
|
external_id = ""
|
47
47
|
transformed_key_id = transform_key_id(key_id)
|
48
48
|
params = {:key_id => transformed_key_id, :external_id => external_id, :data => nil}
|
49
49
|
params.merge!(:contacts => contacts)
|
50
|
-
post "event/#{
|
50
|
+
post account, "event/#{id}/trigger", params
|
51
51
|
end
|
52
52
|
|
53
53
|
# @private
|
@@ -13,8 +13,8 @@ module Emarsys
|
|
13
13
|
# @return [Hash] Result data
|
14
14
|
# @example
|
15
15
|
# Emarsys::Export.resource(2)
|
16
|
-
def resource(id)
|
17
|
-
get "export/#{id}", {}
|
16
|
+
def resource(id, account: nil)
|
17
|
+
get account, "export/#{id}", {}
|
18
18
|
end
|
19
19
|
|
20
20
|
# Download export data
|
@@ -25,11 +25,11 @@ module Emarsys
|
|
25
25
|
# @return [String] text/csv
|
26
26
|
# @example
|
27
27
|
# Emarsys::Export.data(2)
|
28
|
-
def data(id, offset
|
28
|
+
def data(id, offset: nil, limit: nil, account: nil)
|
29
29
|
params = {}
|
30
30
|
params.merge!(:offset => offset) if offset
|
31
31
|
params.merge!(:limit => limit) if limit
|
32
|
-
get "export/#{id}/data", params
|
32
|
+
get account, "export/#{id}/data", params
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
@@ -15,12 +15,12 @@ module Emarsys
|
|
15
15
|
# @example
|
16
16
|
# Emarsys::Field.collection
|
17
17
|
# Emarsys::Field.collection(:translate => 'en')
|
18
|
-
def collection(
|
18
|
+
def collection(account: nil, **params)
|
19
19
|
params = params.stringify_keys
|
20
20
|
if params['translate']
|
21
|
-
get "field/translate/#{params['translate'].to_s}", {}
|
21
|
+
get account, "field/translate/#{params['translate'].to_s}", {}
|
22
22
|
else
|
23
|
-
get 'field', {}
|
23
|
+
get account, 'field', {}
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
@@ -30,8 +30,8 @@ module Emarsys
|
|
30
30
|
# @return [Hash] Result Data
|
31
31
|
# @example
|
32
32
|
# Emarsys::Field.choice(3)
|
33
|
-
def choice(id)
|
34
|
-
get "field/#{id}/choice", {}
|
33
|
+
def choice(id, account: nil)
|
34
|
+
get account, "field/#{id}/choice", {}
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
@@ -15,23 +15,23 @@ module Emarsys
|
|
15
15
|
# @example
|
16
16
|
# Emarsys::File.collection
|
17
17
|
# Emarsys::File.collection(:folder => 3)
|
18
|
-
def collection(
|
19
|
-
get 'file', params
|
18
|
+
def collection(account: nil, **params)
|
19
|
+
get account, 'file', params
|
20
20
|
end
|
21
21
|
|
22
22
|
# Upload a file to the media database
|
23
23
|
#
|
24
24
|
# @param filename [String] The filename
|
25
|
-
# @param
|
26
|
-
# @param
|
25
|
+
# @param file [String] Base64 encoded version of the file
|
26
|
+
# @param folder [Integer, String] optinal folder to out te file into
|
27
27
|
# @return [Hash] Result data
|
28
28
|
# @example
|
29
29
|
# Emarsys::File.create("my_file.jpg", "asdhkajsh...")
|
30
30
|
# Emarsys::File.create("my_file.jpg", "asdhkajsh...", 3)
|
31
|
-
def create(filename
|
32
|
-
params = {:filename => filename, :file =>
|
33
|
-
params.merge!(
|
34
|
-
post 'file', params
|
31
|
+
def create(filename:, file:, folder: nil, account: nil)
|
32
|
+
params = {:filename => filename, :file => file}
|
33
|
+
params.merge!(:folder => folder) unless folder.nil?
|
34
|
+
post account, 'file', params
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
@@ -12,8 +12,8 @@ module Emarsys
|
|
12
12
|
# @return [Hash] List of sources
|
13
13
|
# @example
|
14
14
|
# Emarsys::Source.collection
|
15
|
-
def collection
|
16
|
-
get 'source', {}
|
15
|
+
def collection(account: nil)
|
16
|
+
get account, 'source', {}
|
17
17
|
end
|
18
18
|
|
19
19
|
# Create a new source
|
@@ -22,8 +22,8 @@ module Emarsys
|
|
22
22
|
# @return [Hash] Result data
|
23
23
|
# @example
|
24
24
|
# Emarsys::Source.create("My new source")
|
25
|
-
def create(name)
|
26
|
-
post 'source/create', {:name => name}
|
25
|
+
def create(name:, account: nil)
|
26
|
+
post account, 'source/create', {:name => name}
|
27
27
|
end
|
28
28
|
|
29
29
|
# Destroy a specific source
|
@@ -32,8 +32,8 @@ module Emarsys
|
|
32
32
|
# @return [Hash] Result data
|
33
33
|
# @example
|
34
34
|
# Emarsys::Source.destroy(2)
|
35
|
-
def destroy(id)
|
36
|
-
delete "source/#{id}", {}
|
35
|
+
def destroy(id, account: nil)
|
36
|
+
delete account, "source/#{id}", {}
|
37
37
|
end
|
38
38
|
|
39
39
|
end
|
data/lib/emarsys/error.rb
CHANGED
data/lib/emarsys/request.rb
CHANGED
@@ -2,41 +2,42 @@
|
|
2
2
|
module Emarsys
|
3
3
|
|
4
4
|
class Request
|
5
|
-
attr_accessor :http_verb, :path, :params
|
5
|
+
attr_accessor :http_verb, :path, :params, :account
|
6
6
|
|
7
|
-
def initialize(http_verb, path, params = {})
|
7
|
+
def initialize(account, http_verb, path, params = {})
|
8
8
|
self.path = path
|
9
9
|
self.http_verb = http_verb
|
10
10
|
self.params = params
|
11
|
+
self.account = account
|
11
12
|
end
|
12
13
|
|
13
14
|
def send_request
|
14
15
|
case http_verb.to_sym
|
15
16
|
when :post
|
16
17
|
RestClient.post(emarsys_uri, converted_params.to_json, :content_type => :json, :x_wsse => client.x_wsse_string) do |response, request, result, &block|
|
17
|
-
Emarsys::Response.new(response)
|
18
|
+
Emarsys::Response.new(response)
|
18
19
|
end
|
19
20
|
when :put
|
20
21
|
RestClient.put emarsys_uri, converted_params.to_json, :content_type => :json, :x_wsse => client.x_wsse_string do |response, request, result, &block|
|
21
|
-
Emarsys::Response.new(response)
|
22
|
+
Emarsys::Response.new(response)
|
22
23
|
end
|
23
24
|
when :delete
|
24
25
|
RestClient.delete(emarsys_uri, :content_type => :json, :x_wsse => client.x_wsse_string) do |response, request, result, &block|
|
25
|
-
Emarsys::Response.new(response)
|
26
|
+
Emarsys::Response.new(response)
|
26
27
|
end
|
27
28
|
else
|
28
29
|
RestClient.get(emarsys_uri, :content_type => :json, :x_wsse => client.x_wsse_string) do |response, request, result, &block|
|
29
|
-
Emarsys::Response.new(response)
|
30
|
+
Emarsys::Response.new(response)
|
30
31
|
end
|
31
32
|
end
|
32
33
|
end
|
33
34
|
|
34
35
|
def client
|
35
|
-
Emarsys::Client.new
|
36
|
+
Emarsys::Client.new(account)
|
36
37
|
end
|
37
38
|
|
38
39
|
def emarsys_uri
|
39
|
-
[
|
40
|
+
[client.endpoint, @path].join('/')
|
40
41
|
end
|
41
42
|
|
42
43
|
def converted_params
|
data/lib/emarsys/response.rb
CHANGED
@@ -13,20 +13,18 @@ module Emarsys
|
|
13
13
|
self.text = json['replyText']
|
14
14
|
self.data = json['data']
|
15
15
|
end
|
16
|
+
|
16
17
|
self.status = response.code if response.respond_to?(:code)
|
17
|
-
end
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
raise Emarsys::BadRequest.new(code, text, status)
|
19
|
+
if code != 0
|
20
|
+
if status == 401
|
21
|
+
raise Emarsys::Unauthorized.new(code, text, status)
|
22
|
+
elsif status == 429
|
23
|
+
raise Emarsys::TooManyRequests.new(code, text, status)
|
24
|
+
else
|
25
|
+
raise Emarsys::BadRequest.new(code, text, status)
|
26
|
+
end
|
28
27
|
end
|
29
28
|
end
|
30
|
-
|
31
29
|
end
|
32
30
|
end
|
data/lib/emarsys/version.rb
CHANGED
data/lib/emarsys.rb
CHANGED
@@ -4,6 +4,7 @@ require 'json'
|
|
4
4
|
require 'rest_client'
|
5
5
|
require 'uri'
|
6
6
|
|
7
|
+
require 'emarsys/configuration'
|
7
8
|
require 'emarsys/client'
|
8
9
|
require 'emarsys/country'
|
9
10
|
require 'emarsys/data_object'
|
@@ -36,27 +37,14 @@ require "emarsys/version"
|
|
36
37
|
# Ruby toolkit for the Emarsys API
|
37
38
|
module Emarsys
|
38
39
|
class << self
|
40
|
+
extend Forwardable
|
39
41
|
|
40
|
-
|
41
|
-
# @return [String] Base URL for emarsys URLs. default: https://api.emarsys.net/api/v2
|
42
|
-
# @!attribute api_password
|
43
|
-
# @return [String] API Username given by Emarsys
|
44
|
-
# @!attribute api_username
|
45
|
-
# @return [String] API Username given by Emarsys
|
42
|
+
attr_accessor :allow_default_configuration
|
46
43
|
|
47
|
-
|
44
|
+
def_delegators :configuration, :configure
|
48
45
|
|
49
|
-
|
50
|
-
|
51
|
-
# @return [String] domain which should be used to query the API
|
52
|
-
def api_endpoint
|
53
|
-
@api_endpoint ||= 'https://api.emarsys.net/api/v2'
|
46
|
+
def configuration
|
47
|
+
@configuration ||= Emarsys::Configuration
|
54
48
|
end
|
55
|
-
|
56
|
-
# Set configuration options using a block
|
57
|
-
def configure
|
58
|
-
yield self
|
59
|
-
end
|
60
|
-
|
61
49
|
end
|
62
50
|
end
|
data/spec/emarsys/client_spec.rb
CHANGED
@@ -4,23 +4,27 @@ describe Emarsys::Client do
|
|
4
4
|
|
5
5
|
describe 'configs for username and password' do
|
6
6
|
it 'inherits username from module' do
|
7
|
-
allow(Emarsys).to receive(:api_username).and_return("my_username")
|
8
7
|
expect(Emarsys::Client.new.username).to eq("my_username")
|
9
8
|
end
|
10
9
|
|
11
10
|
it 'inherits password from module' do
|
12
|
-
allow(Emarsys).to receive(:api_password).and_return("my_password")
|
13
11
|
expect(Emarsys::Client.new.password).to eq("my_password")
|
14
12
|
end
|
15
13
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
14
|
+
context 'missing values' do
|
15
|
+
before do
|
16
|
+
Emarsys.configure do |config|
|
17
|
+
config.api_username = nil
|
18
|
+
config.api_password = nil
|
19
|
+
end
|
20
|
+
end
|
21
|
+
it 'raises error if api_username is not set' do
|
22
|
+
expect{Emarsys::Client.new.username}.to raise_error(ArgumentError, 'api_username is not set')
|
23
|
+
end
|
20
24
|
|
21
|
-
|
22
|
-
|
23
|
-
|
25
|
+
it 'raises error if api_password is not set' do
|
26
|
+
expect{Emarsys::Client.new.password}.to raise_error(ArgumentError, 'api_password is not set')
|
27
|
+
end
|
24
28
|
end
|
25
29
|
end
|
26
30
|
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Emarsys::Configuration do
|
4
|
+
|
5
|
+
describe ".configure" do
|
6
|
+
[:api_endpoint, :api_username, :api_password].each do |key|
|
7
|
+
it "sets the #{key.to_s.gsub('_', ' ')}" do
|
8
|
+
Emarsys::Configuration.configure(account: :foo) do |config|
|
9
|
+
config.send("#{key}=", key)
|
10
|
+
end
|
11
|
+
expect(Emarsys::Configuration.for(:foo).__send__(key)).to eq key
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe ".api_endpoint getter" do
|
17
|
+
it "returns specific url as default value" do
|
18
|
+
Emarsys.configure { |c| c.api_endpoint = nil }
|
19
|
+
expect(Emarsys::Configuration.for(nil).api_endpoint).to eq('https://api.emarsys.net/api/v2')
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -5,34 +5,34 @@ describe Emarsys::DataObject do
|
|
5
5
|
|
6
6
|
describe '.get' do
|
7
7
|
it "delegates to the instance request method" do
|
8
|
-
allow_any_instance_of(Emarsys::DataObject).to receive(:request).with('get', 'test_method', {}).and_return(nil)
|
9
|
-
Emarsys::DataObject.get('test_method', {})
|
8
|
+
allow_any_instance_of(Emarsys::DataObject).to receive(:request).with(nil, 'get', 'test_method', {}).and_return(nil)
|
9
|
+
Emarsys::DataObject.get(nil, 'test_method', {})
|
10
10
|
end
|
11
11
|
|
12
12
|
it "transfers params to specific emarsys params format" do
|
13
|
-
allow_any_instance_of(Emarsys::DataObject).to receive(:request).with('get', 'test_method/?a=1&b=2', {}).and_return(nil)
|
14
|
-
Emarsys::DataObject.get('test_method', {'a' => 1, 'b' => 2})
|
13
|
+
allow_any_instance_of(Emarsys::DataObject).to receive(:request).with(nil, 'get', 'test_method/?a=1&b=2', {}).and_return(nil)
|
14
|
+
Emarsys::DataObject.get(nil, 'test_method', {'a' => 1, 'b' => 2})
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
18
|
describe '.post' do
|
19
19
|
it "delegates to the instance request method" do
|
20
|
-
allow_any_instance_of(Emarsys::DataObject).to receive(:request).with('post', 'test_method', {}).and_return(nil)
|
21
|
-
Emarsys::DataObject.post('test_method', {})
|
20
|
+
allow_any_instance_of(Emarsys::DataObject).to receive(:request).with(nil, 'post', 'test_method', {}).and_return(nil)
|
21
|
+
Emarsys::DataObject.post(nil, 'test_method', {})
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
25
|
describe '.put' do
|
26
26
|
it "delegates to the instance request method" do
|
27
|
-
allow_any_instance_of(Emarsys::DataObject).to receive(:request).with('put', 'test_method', {}).and_return(nil)
|
28
|
-
Emarsys::DataObject.put('test_method', {})
|
27
|
+
allow_any_instance_of(Emarsys::DataObject).to receive(:request).with(nil, 'put', 'test_method', {}).and_return(nil)
|
28
|
+
Emarsys::DataObject.put(nil, 'test_method', {})
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
32
|
describe '.delete' do
|
33
33
|
it "delegates to the instance request method" do
|
34
|
-
allow_any_instance_of(Emarsys::DataObject).to receive(:request).with('delete', 'test_method', {}).and_return(nil)
|
35
|
-
Emarsys::DataObject.delete('test_method', {})
|
34
|
+
allow_any_instance_of(Emarsys::DataObject).to receive(:request).with(nil, 'delete', 'test_method', {}).and_return(nil)
|
35
|
+
Emarsys::DataObject.delete(nil, 'test_method', {})
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
@@ -54,7 +54,7 @@ describe Emarsys::DataObject do
|
|
54
54
|
|
55
55
|
it "provides a simple #request that delegates to Emarsys::Request" do
|
56
56
|
allow_any_instance_of(Emarsys::Request).to receive(:send_request).and_return(nil)
|
57
|
-
data_object.request('get', 'test_method', {})
|
57
|
+
data_object.request(nil, 'get', 'test_method', {})
|
58
58
|
end
|
59
59
|
end
|
60
60
|
end
|
@@ -5,7 +5,7 @@ describe Emarsys::Contact do
|
|
5
5
|
it "requests contact creation with parameters" do
|
6
6
|
stub_params = {1 => 'John', 2 => "Doe"}
|
7
7
|
stub = stub_request(:post, "https://api.emarsys.net/api/v2/contact").with(:body => stub_params.merge!({'key_id' => 3, 3 => 'john.doe@example.com'}).to_json).to_return(standard_return_body)
|
8
|
-
Emarsys::Contact.create(3, "john.doe@example.com", stub_params)
|
8
|
+
Emarsys::Contact.create(key_id: 3, key_value: "john.doe@example.com", params: stub_params)
|
9
9
|
expect(stub).to have_been_requested.once
|
10
10
|
end
|
11
11
|
end
|
@@ -13,7 +13,7 @@ describe Emarsys::Contact do
|
|
13
13
|
describe ".emarsys_id" do
|
14
14
|
it "requests emarsys_id of a contact" do
|
15
15
|
stub = stub_request(:get, "https://api.emarsys.net/api/v2/contact/?3=jane.doe@example.com").to_return(standard_return_body)
|
16
|
-
Emarsys::Contact.emarsys_id(3, 'jane.doe@example.com')
|
16
|
+
Emarsys::Contact.emarsys_id(key_id: 3, key_value: 'jane.doe@example.com')
|
17
17
|
expect(stub).to have_been_requested.once
|
18
18
|
end
|
19
19
|
end
|
@@ -22,13 +22,13 @@ describe Emarsys::Contact do
|
|
22
22
|
it "requests contact update with parameters" do
|
23
23
|
stub_params = {1 => 'Jane', 2 => "Doe"}
|
24
24
|
stub = stub_request(:put, "https://api.emarsys.net/api/v2/contact").with(:body => stub_params.merge!({'key_id' => 3, 3 => 'jane.doe@example.com'}).to_json).to_return(standard_return_body)
|
25
|
-
Emarsys::Contact.update(3, 'jane.doe@example.com', stub_params)
|
25
|
+
Emarsys::Contact.update(key_id: 3, key_value: 'jane.doe@example.com', params: stub_params)
|
26
26
|
expect(stub).to have_been_requested.once
|
27
27
|
end
|
28
28
|
it "may create non-existing contact" do
|
29
29
|
stub_params = {1 => 'Jane', 2 => "Doe"}
|
30
30
|
stub = stub_request(:put, "https://api.emarsys.net/api/v2/contact/?create_if_not_exists=1").with(:body => stub_params.merge!({'key_id' => 3, 3 => 'jane.doe@example.com'}).to_json).to_return(standard_return_body)
|
31
|
-
Emarsys::Contact.update(3, 'jane.doe@example.com', stub_params, true)
|
31
|
+
Emarsys::Contact.update(key_id: 3, key_value: 'jane.doe@example.com', params: stub_params, create_if_not_exists: true)
|
32
32
|
expect(stub).to have_been_requested.once
|
33
33
|
end
|
34
34
|
end
|
@@ -37,14 +37,14 @@ describe Emarsys::Contact do
|
|
37
37
|
it "requests contact batch creation with parameters" do
|
38
38
|
stub_params = [{1 => 'Jane', 2 => "Doe"}, {1 => 'Paul', 2 => 'Tester'}]
|
39
39
|
stub = stub_request(:post, "https://api.emarsys.net/api/v2/contact").with(:body => {'key_id' => 3, 'contacts' => stub_params}.to_json).to_return(standard_return_body)
|
40
|
-
Emarsys::Contact.create_batch(3, stub_params)
|
40
|
+
Emarsys::Contact.create_batch(key_id: 3, params: stub_params)
|
41
41
|
expect(stub).to have_been_requested.once
|
42
42
|
end
|
43
43
|
it "transforms identifiers to IDs for each contact parameter set" do
|
44
44
|
given_params = [{'_firstname' => 'Jane', '_lastname' => "Doe"}, {'_firstname' => 'Paul', '_lastname' => 'Tester'}]
|
45
45
|
expected_params = [{1 => 'Jane', 2 => "Doe"}, {1 => 'Paul', 2 => 'Tester'}]
|
46
46
|
stub = stub_request(:post, "https://api.emarsys.net/api/v2/contact").with(:body => {'key_id' => 3, 'contacts' => expected_params}.to_json).to_return(standard_return_body)
|
47
|
-
Emarsys::Contact.create_batch('_email', given_params)
|
47
|
+
Emarsys::Contact.create_batch(key_id: '_email', params: given_params)
|
48
48
|
expect(stub).to have_been_requested.once
|
49
49
|
end
|
50
50
|
end
|
@@ -53,20 +53,20 @@ describe Emarsys::Contact do
|
|
53
53
|
it "requests contact batch update with parameters" do
|
54
54
|
stub_params = [{1 => 'Jane', 2 => "Doe"}, {1 => 'Paul', 2 => 'Tester'}]
|
55
55
|
stub = stub_request(:put, "https://api.emarsys.net/api/v2/contact").with(:body => {'key_id' => 3, 'contacts' => stub_params}.to_json).to_return(standard_return_body)
|
56
|
-
Emarsys::Contact.update_batch(3, stub_params)
|
56
|
+
Emarsys::Contact.update_batch(key_id: 3, params: stub_params)
|
57
57
|
expect(stub).to have_been_requested.once
|
58
58
|
end
|
59
59
|
it "transforms identifiers to IDs for each contact parameter set" do
|
60
60
|
given_params = [{'_firstname' => 'Jane', '_lastname' => "Doe"}, {'_firstname' => 'Paul', '_lastname' => 'Tester'}]
|
61
61
|
expected_params = [{1 => 'Jane', 2 => "Doe"}, {1 => 'Paul', 2 => 'Tester'}]
|
62
62
|
stub = stub_request(:put, "https://api.emarsys.net/api/v2/contact").with(:body => {'key_id' => 3, 'contacts' => expected_params}.to_json).to_return(standard_return_body)
|
63
|
-
Emarsys::Contact.update_batch('_email', given_params)
|
63
|
+
Emarsys::Contact.update_batch(key_id: '_email', params: given_params)
|
64
64
|
expect(stub).to have_been_requested.once
|
65
65
|
end
|
66
66
|
it "may create non-existing contacts" do
|
67
67
|
stub_params = [{1 => 'Jane', 2 => "Doe"}, {1 => 'Paul', 2 => 'Tester'}]
|
68
68
|
stub = stub_request(:put, "https://api.emarsys.net/api/v2/contact/?create_if_not_exists=1").with(:body => {'key_id' => 3, 'contacts' => stub_params}.to_json).to_return(standard_return_body)
|
69
|
-
Emarsys::Contact.update_batch(3, stub_params, true)
|
69
|
+
Emarsys::Contact.update_batch(key_id: 3, params: stub_params, create_if_not_exists: true)
|
70
70
|
expect(stub).to have_been_requested.once
|
71
71
|
end
|
72
72
|
end
|
@@ -75,7 +75,7 @@ describe Emarsys::Contact do
|
|
75
75
|
it "requests contact histories" do
|
76
76
|
stub_params = [1,2,3]
|
77
77
|
stub = stub_request(:post, "https://api.emarsys.net/api/v2/contact/getcontacthistory").with(:body => {'contacts' => stub_params}.to_json).to_return(standard_return_body)
|
78
|
-
Emarsys::Contact.contact_history(stub_params)
|
78
|
+
Emarsys::Contact.contact_history(contacts: stub_params)
|
79
79
|
expect(stub).to have_been_requested.once
|
80
80
|
end
|
81
81
|
end
|
@@ -83,7 +83,7 @@ describe Emarsys::Contact do
|
|
83
83
|
describe ".search" do
|
84
84
|
it "requests contact data based on search params" do
|
85
85
|
stub = stub_request(:post, "https://api.emarsys.net/api/v2/contact/getdata").with(:body => {'keyId' => '3', 'keyValues' => ['jane.doe@example.com'], 'fields' => []}.to_json).to_return(standard_return_body)
|
86
|
-
Emarsys::Contact.search('3', ['jane.doe@example.com'])
|
86
|
+
Emarsys::Contact.search(key_id: '3', key_values: ['jane.doe@example.com'])
|
87
87
|
expect(stub).to have_been_requested.once
|
88
88
|
end
|
89
89
|
end
|
@@ -100,6 +100,6 @@ describe Emarsys::Contact do
|
|
100
100
|
|
101
101
|
|
102
102
|
def contact_history(contact_ids_array)
|
103
|
-
post "contact/getcontacthistory", {'contacts' => contact_ids_array}
|
103
|
+
post account, "contact/getcontacthistory", {'contacts' => contact_ids_array}
|
104
104
|
end
|
105
105
|
end
|
@@ -58,9 +58,9 @@ describe Emarsys::Email do
|
|
58
58
|
end
|
59
59
|
|
60
60
|
it "requests an email launch with parameters" do
|
61
|
-
stub_params = {:
|
61
|
+
stub_params = {schedule: "2013-12-01 23:00:00", time_zone: "Europe/Berlin"}
|
62
62
|
stub = stub_request(:post, "https://api.emarsys.net/api/v2/email/123/launch").with(:body => stub_params.to_json).to_return(standard_return_body)
|
63
|
-
Emarsys::Email.launch(123,
|
63
|
+
Emarsys::Email.launch(123, schedule: "2013-12-01 23:00:00", time_zone: "Europe/Berlin")
|
64
64
|
expect(stub).to have_been_requested.once
|
65
65
|
end
|
66
66
|
end
|
@@ -69,16 +69,16 @@ describe Emarsys::Email do
|
|
69
69
|
it "requests an email preview" do
|
70
70
|
stub_params = {:version => 'html'}
|
71
71
|
stub = stub_request(:post, "https://api.emarsys.net/api/v2/email/123/preview").with(:body => stub_params.to_json).to_return(standard_return_body)
|
72
|
-
Emarsys::Email.preview(123, 'html')
|
72
|
+
Emarsys::Email.preview(123, version: 'html')
|
73
73
|
expect(stub).to have_been_requested.once
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
77
|
describe ".send_test_mail" do
|
78
78
|
it "requests an email test sending with custom recipient list" do
|
79
|
-
stub_params = {:
|
79
|
+
stub_params = {recipientlist: 'john.doe@example.com;jane.doe@example.com'}
|
80
80
|
stub = stub_request(:post, "https://api.emarsys.net/api/v2/email/123/sendtestmail").with(:body => stub_params.to_json).to_return(standard_return_body)
|
81
|
-
Emarsys::Email.send_test_mail(123,
|
81
|
+
Emarsys::Email.send_test_mail(123, recipientlist: 'john.doe@example.com;jane.doe@example.com')
|
82
82
|
expect(stub).to have_been_requested.once
|
83
83
|
end
|
84
84
|
end
|
@@ -12,13 +12,13 @@ describe Emarsys::Event do
|
|
12
12
|
describe ".trigger" do
|
13
13
|
it "requests event trigger with parameters" do
|
14
14
|
stub = stub_request(:post, "https://api.emarsys.net/api/v2/event/123/trigger").with(:body => {'key_id' => 3, 'external_id' => "jane.doe@example.com"}.to_json).to_return(standard_return_body)
|
15
|
-
Emarsys::Event.trigger(123, 3, 'jane.doe@example.com')
|
15
|
+
Emarsys::Event.trigger(123, key_id: 3, external_id: 'jane.doe@example.com')
|
16
16
|
expect(stub).to have_been_requested.once
|
17
17
|
end
|
18
18
|
|
19
19
|
it "requests event trigger with additional data parameters" do
|
20
20
|
stub = stub_request(:post, "https://api.emarsys.net/api/v2/event/123/trigger").with(:body => {'key_id' => 3, 'external_id' => "jane.doe@example.com", :data => {'global' => {'my_placeholder' => 'Something'}}}.to_json).to_return(standard_return_body)
|
21
|
-
Emarsys::Event.trigger(123, 3, 'jane.doe@example.com', {'global' => {'my_placeholder' => 'Something'}})
|
21
|
+
Emarsys::Event.trigger(123, key_id: 3, external_id: 'jane.doe@example.com', data: {'global' => {'my_placeholder' => 'Something'}})
|
22
22
|
expect(stub).to have_been_requested.once
|
23
23
|
end
|
24
24
|
end
|
@@ -26,7 +26,7 @@ describe Emarsys::Event do
|
|
26
26
|
describe ".trigger_multiple" do
|
27
27
|
it "requests event trigger with parameters" do
|
28
28
|
stub = stub_request(:post, "https://api.emarsys.net/api/v2/event/123/trigger").with(:body => {'key_id' => 3, 'external_id' => "", :data => nil, :contacts => [{'external_id' => "jane.doe@example.com"}]}.to_json).to_return(standard_return_body)
|
29
|
-
Emarsys::Event.trigger_multiple(123,3,[{'external_id' => 'jane.doe@example.com'}])
|
29
|
+
Emarsys::Event.trigger_multiple(123, key_id: 3, contacts: [{'external_id' => 'jane.doe@example.com'}])
|
30
30
|
expect(stub).to have_been_requested.once
|
31
31
|
end
|
32
32
|
end
|