emarsys 0.2.3 → 0.3.0

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.
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