Class: Emarsys::Event

Inherits:
DataObject show all
Defined in:
lib/emarsys/data_objects/event.rb

Overview

Methods for the Event API

Class Method Summary collapse

Methods inherited from DataObject

delete, get, parameterize_params, post, put, #request

Class Method Details

.collection(account: nil) ⇒ Hash

List events

Examples:

Emarsys::Event.collection

Returns:

  • (Hash)

    List of events



16
17
18
# File 'lib/emarsys/data_objects/event.rb', line 16

def collection(account: nil)
  get , 'event', {}
end

.transform_key_id(key_id) ⇒ Object



56
57
58
59
# File 'lib/emarsys/data_objects/event.rb', line 56

def transform_key_id(key_id)
  matching_attributes = Emarsys::FieldMapping.attributes.find{|elem| elem[:identifier] == key_id.to_s}
  matching_attributes.nil? ? key_id : matching_attributes[:id]
end

.trigger(id, key_id:, external_id:, data: {}, attachment: [], account: nil) ⇒ Hash

Trigger an external event

Examples:

Emarsys::Event.trigger(2, 3, '[email protected]')
Emarsys::Event.trigger(2, 'user_id', 57687, {:global => {:name => "Special Name"}})

Parameters:

  • id (Integer, String)

    The internal emarsys id

  • key_id (Integer, String)

    The identifer of the key field (e.g. 3 for ‘email’)

  • external_id (String)

    The id of the given filed specified with key_id (e.g. ‘[email protected]’)

  • data (Hash) (defaults to: {})

    a customizable set of options

  • attachment (Hash) (defaults to: [])

    a customizable set of options

Options Hash (data:):

  • data (Hash)

    hash for transactional mails

Options Hash (attachment:):

  • array (Array)

    containing an attachment for transactional mails

Returns:

  • (Hash)

    Result data



31
32
33
34
35
36
37
# File 'lib/emarsys/data_objects/event.rb', line 31

def trigger(id, key_id:, external_id:, data: {}, attachment: [], account: nil)
  transformed_key_id = transform_key_id(key_id)
  params = { key_id: transformed_key_id, external_id: external_id }
  params.merge!(data: data) if not data.empty?
  params.merge!(attachment: attachment) if not attachment.empty?
  post , "event/#{id}/trigger", params
end

.trigger_multiple(id, key_id:, contacts:, account: nil) ⇒ Hash

Trigger an external event for multiple contacts

Examples:

Emarsys::Event.trigger_multiple(2, 3, [{:external_id => "[email protected]"},{:external_id => "[email protected]", :data => {:name => "Special Name"}}])

Parameters:

  • id (Integer, String)

    The internal emarsys id

  • key_id (Integer, String)

    The identifer of the key field (e.g. 3 for ‘email’)

  • contacts (Array, Hash)

    An array with hashes containing the contacts and optional data per contact

Returns:

  • (Hash)

    Result data



47
48
49
50
51
52
53
# File 'lib/emarsys/data_objects/event.rb', line 47

def trigger_multiple(id, key_id:, contacts:, account: nil)
  external_id = ""
  transformed_key_id = transform_key_id(key_id)
  params = {:key_id => transformed_key_id, :external_id => external_id, :data => nil}
  params.merge!(:contacts => contacts)
  post , "event/#{id}/trigger", params
end