class Emarsys::Event

Methods for the Event API

Public Class Methods

collection(account: nil) click to toggle source

List events

@return [Hash] List of events @example

Emarsys::Event.collection
# File lib/emarsys/data_objects/event.rb, line 16
def collection(account: nil)
  get account, 'event', {}
end
transform_key_id(key_id) click to toggle source

@private

# 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) click to toggle source

Trigger an external event

@param id [Integer, String] The internal emarsys id @param key_id [Integer, String] The identifer of the key field (e.g. 3 for ‘email’) @param external_id [String] The id of the given filed specified with key_id (e.g. ‘test@example.com’) @option data [Hash] data hash for transactional mails @option attachment [Array] array containing an attachment for transactional mails @return [Hash] Result data @example

Emarsys::Event.trigger(2, 3, 'test@example.com')
Emarsys::Event.trigger(2, 'user_id', 57687, {:global => {:name => "Special Name"}})
# 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 account, "event/#{id}/trigger", params
end
trigger_multiple(id, key_id:, contacts:, account: nil) click to toggle source

Trigger an external event for multiple contacts

@param id [Integer, String] The internal emarsys id @param key_id [Integer, String] The identifer of the key field (e.g. 3 for ‘email’) @param contacts [Array, Hash] An array with hashes containing the contacts and optional data per contact @return [Hash] Result data @example

Emarsys::Event.trigger_multiple(2, 3, [{:external_id => "test@example.com"},{:external_id => "test2@example.com", :data => {:name => "Special Name"}}])
# 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 account, "event/#{id}/trigger", params
end