Class: Iterable::Api

Inherits:
Object
  • Object
show all
Defined in:
lib/iterable/api.rb

Instance Method Summary collapse

Constructor Details

#initialize(api_key = nil) ⇒ Object

Class constructor

Parameters:

  • api_key (String) (defaults to: nil)
    • Iterable API Key



12
13
14
15
16
17
# File 'lib/iterable/api.rb', line 12

def initialize(api_key = nil)
  Services::BaseService.api_key = api_key || Util::Config.get('auth.api_key')
  if Services::BaseService.api_key.nil? || Services::BaseService.api_key == ''
    raise ArgumentError.new(Util::Config.get('errors.api_key_missing'))
  end
end

Instance Method Details

#list_by_id(list_id) ⇒ Object



48
49
50
# File 'lib/iterable/api.rb', line 48

def list_by_id(list_id)
  Services::ListService.find_by_id(list_id)
end

#list_create(list_name) ⇒ Object



44
45
46
# File 'lib/iterable/api.rb', line 44

def list_create(list_name)
  Services::ListService.create(list_name)
end

#listsObject

List Services



32
33
34
# File 'lib/iterable/api.rb', line 32

def lists
  Services::ListService.all
end

#lists_subscribe(list_id, subscribers) ⇒ Object



36
37
38
# File 'lib/iterable/api.rb', line 36

def lists_subscribe(list_id, subscribers)
  Services::ListService.subscribe(list_id, subscribers)
end

#lists_unsubscribe(list_id, subscribers) ⇒ Object



40
41
42
# File 'lib/iterable/api.rb', line 40

def lists_unsubscribe(list_id, subscribers)
  Services::ListService.unsubscribe(list_id, subscribers)
end

#message_typesObject

MessageType Services



62
63
64
# File 'lib/iterable/api.rb', line 62

def message_types
  Services::MessageTypeService.all
end

#send_email(targeted_email_request) ⇒ Object

Email Services



25
26
27
# File 'lib/iterable/api.rb', line 25

def send_email(targeted_email_request)
  Services::EmailService.send_email(targeted_email_request)
end

#templatesObject

Template Services



55
56
57
# File 'lib/iterable/api.rb', line 55

def templates
  Services::TemplateService.all
end

#track_event(track_event_request) ⇒ Object

Event Services



20
21
22
# File 'lib/iterable/api.rb', line 20

def track_event(track_event_request)
  Services::EventService.track(track_event_request)
end

#track_purchase(track_purchase_request) ⇒ Object

Commerce Services



111
112
113
# File 'lib/iterable/api.rb', line 111

def track_purchase(track_purchase_request)
  Services::CommerceService.track_purchase(track_purchase_request)
end

#unsubscribe_all(email, preloaded_message_types = nil) ⇒ Object



89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/iterable/api.rb', line 89

def unsubscribe_all(email, preloaded_message_types=nil)
  if !email.blank?
    # Get all message types
    iterable_message_types = preloaded_message_types ? preloaded_message_types : message_types
    if iterable_message_types && iterable_message_types["messageTypes"]
      message_type_ids = iterable_message_types["messageTypes"].collect { |message_type| message_type["id"] }
      channel_ids = iterable_message_types["messageTypes"].collect { |message_type| message_type["channelId"] }
      if !message_type_ids.blank?
        subscription_request = Iterable::Requests::SubscriptionUpdate.new({
          email: email,
          unsubscribedMessageTypeIds: message_type_ids,
          unsubscribedChannelIds: channel_ids
        })
        user_update_subscriptions(subscription_request)
      end
    end
  end
end

#user_by_email(email) ⇒ Object

User Services



69
70
71
# File 'lib/iterable/api.rb', line 69

def user_by_email(email)
  Services::UserService.find_by_email(email)
end

#user_by_id(id) ⇒ Object



73
74
75
# File 'lib/iterable/api.rb', line 73

def user_by_id(id)
  Services::UserService.find_by_id(id)
end

#user_fieldsObject



81
82
83
# File 'lib/iterable/api.rb', line 81

def user_fields
  Services::UserService.fields
end

#user_update(user) ⇒ Object



77
78
79
# File 'lib/iterable/api.rb', line 77

def user_update(user)
  Services::UserService.update(user)
end

#user_update_subscriptions(subscription_request) ⇒ Object



85
86
87
# File 'lib/iterable/api.rb', line 85

def user_update_subscriptions(subscription_request)
  Services::UserService.update_subscription(subscription_request)
end