emarsys 0.2.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +32 -0
  3. data/README.md +42 -38
  4. data/lib/emarsys/client.rb +11 -5
  5. data/lib/emarsys/configuration.rb +54 -0
  6. data/lib/emarsys/data_object.rb +16 -23
  7. data/lib/emarsys/data_objects/condition.rb +2 -2
  8. data/lib/emarsys/data_objects/contact.rb +27 -25
  9. data/lib/emarsys/data_objects/contact_list.rb +8 -8
  10. data/lib/emarsys/data_objects/email.rb +19 -19
  11. data/lib/emarsys/data_objects/email_category.rb +2 -2
  12. data/lib/emarsys/data_objects/event.rb +8 -8
  13. data/lib/emarsys/data_objects/export.rb +4 -4
  14. data/lib/emarsys/data_objects/field.rb +5 -5
  15. data/lib/emarsys/data_objects/file.rb +8 -8
  16. data/lib/emarsys/data_objects/folder.rb +2 -2
  17. data/lib/emarsys/data_objects/form.rb +2 -2
  18. data/lib/emarsys/data_objects/language.rb +2 -2
  19. data/lib/emarsys/data_objects/segment.rb +2 -2
  20. data/lib/emarsys/data_objects/source.rb +6 -6
  21. data/lib/emarsys/error.rb +4 -0
  22. data/lib/emarsys/request.rb +9 -8
  23. data/lib/emarsys/response.rb +9 -11
  24. data/lib/emarsys/version.rb +1 -1
  25. data/lib/emarsys.rb +6 -18
  26. data/spec/emarsys/client_spec.rb +13 -9
  27. data/spec/emarsys/configuration_spec.rb +22 -0
  28. data/spec/emarsys/data_object_spec.rb +11 -11
  29. data/spec/emarsys/data_objects/contact_spec.rb +12 -12
  30. data/spec/emarsys/data_objects/email_launch_status_spec.rb +1 -1
  31. data/spec/emarsys/data_objects/email_spec.rb +5 -5
  32. data/spec/emarsys/data_objects/email_status_code_spec.rb +1 -1
  33. data/spec/emarsys/data_objects/event_spec.rb +3 -3
  34. data/spec/emarsys/data_objects/field_spec.rb +1 -1
  35. data/spec/emarsys/data_objects/file_spec.rb +5 -5
  36. data/spec/emarsys/data_objects/folder_spec.rb +1 -1
  37. data/spec/emarsys/data_objects/source_spec.rb +1 -1
  38. data/spec/emarsys/request_spec.rb +1 -1
  39. data/spec/emarsys/response_spec.rb +17 -12
  40. data/spec/emarsys_spec.rb +1 -7
  41. data/spec/spec_helper.rb +1 -0
  42. 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 event_id [Integer, String] The internal emarsys id
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(event_id, key_id, external_id, data = {})
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/#{event_id}/trigger", params
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 event_id [Integer, String] The internal emarsys id
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(event_id, key_id, contacts)
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/#{event_id}/trigger", params
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 = nil, limit = nil)
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(params = {})
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(params = {})
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 base64_encoded_file [String] Base64 encoded version of the file
26
- # @param folder_id [Integer, String] optinal folder to out te file into
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, base64_encoded_file, folder_id = nil)
32
- params = {:filename => filename, :file => base64_encoded_file}
33
- params.merge!({:folder => folder_id}) unless folder_id.nil?
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
 
@@ -15,8 +15,8 @@ module Emarsys
15
15
  # @example
16
16
  # Emarsys::Folder.collection
17
17
  # Emarsys::Folder.collection(:folder => 3)
18
- def collection(params = {})
19
- get 'folder', params
18
+ def collection(account: nil, **params)
19
+ get account, 'folder', params
20
20
  end
21
21
  end
22
22
 
@@ -12,8 +12,8 @@ module Emarsys
12
12
  # @return [Hash] List of forms
13
13
  # @example
14
14
  # Emarsys::Form.collection
15
- def collection
16
- get 'form', {}
15
+ def collection(account: nil)
16
+ get account, 'form', {}
17
17
  end
18
18
 
19
19
  end
@@ -12,8 +12,8 @@ module Emarsys
12
12
  # @return [Hash] List of languages
13
13
  # @example
14
14
  # Emarsys::Language.collection
15
- def collection
16
- get 'language', {}
15
+ def collection(account: nil)
16
+ get account, 'language', {}
17
17
  end
18
18
 
19
19
  end
@@ -12,8 +12,8 @@ module Emarsys
12
12
  # @return [Hash] List of segments
13
13
  # @example
14
14
  # Emarsys::Segment.collection
15
- def collection
16
- get 'filter', {}
15
+ def collection(account: nil)
16
+ get account, 'filter', {}
17
17
  end
18
18
 
19
19
  end
@@ -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
@@ -25,4 +25,8 @@ module Emarsys
25
25
 
26
26
  # Raised when Emarsys returns a 500 HTTP status code
27
27
  class InternalServerError < Error; end
28
+
29
+ class AccountNotConfigured < StandardError; end
30
+
31
+ class AccountRequired < StandardError; end
28
32
  end
@@ -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).result
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).result
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).result
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).result
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
- [Emarsys.api_endpoint, @path].join('/')
40
+ [client.endpoint, @path].join('/')
40
41
  end
41
42
 
42
43
  def converted_params
@@ -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
- def result
20
- if code == 0
21
- data
22
- elsif !status.nil? && status == 401
23
- raise Emarsys::Unauthorized.new(code, text, status)
24
- elsif !status.nil? && status == 429
25
- raise Emarsys::TooManyRequests.new(code, text, status)
26
- else
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
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Emarsys
3
- VERSION = "0.2.3"
3
+ VERSION = "0.3.0"
4
4
  end
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
- # @!attribute api_endpoint
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
- attr_accessor :api_endpoint, :api_username, :api_password
44
+ def_delegators :configuration, :configure
48
45
 
49
- # Base URL for the Emarsys API
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
@@ -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
- it 'raises error if api_username is not set' do
17
- allow(Emarsys).to receive(:api_username).and_return(nil)
18
- expect{Emarsys::Client.new.username}.to raise_error(ArgumentError, 'Emarsys.api_username is not set')
19
- end
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
- it 'raises error if api_password is not set' do
22
- allow(Emarsys).to receive(:api_password).and_return(nil)
23
- expect{Emarsys::Client.new.password}.to raise_error(ArgumentError, 'Emarsys.api_password is not set')
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
@@ -22,4 +22,4 @@ describe Emarsys::EmailLaunchStatus do
22
22
  expect(Emarsys::EmailLaunchStatus.resource(100)).to eq(nil)
23
23
  end
24
24
  end
25
- end
25
+ 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 = {:schedule => "2013-12-01 23:00:00", :time_zone => "Europe/Berlin"}
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, stub_params)
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 = {:recipientlist => 'john.doe@example.com;jane.doe@example.com'}
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, stub_params)
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
@@ -22,4 +22,4 @@ describe Emarsys::EmailStatusCode do
22
22
  expect(Emarsys::EmailStatusCode.resource(100)).to eq(nil)
23
23
  end
24
24
  end
25
- end
25
+ 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