Class: DotMailer::Account

Inherits:
Object
  • Object
show all
Defined in:
lib/dot_mailer/account.rb

Constant Summary collapse

CACHE_LIFETIME =
1.minute

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_user, api_pass) ⇒ Account

Returns a new instance of Account.



10
11
12
# File 'lib/dot_mailer/account.rb', line 10

def initialize(api_user, api_pass)
  self.client = Client.new(api_user, api_pass)
end

Instance Attribute Details

#clientObject

Returns the value of attribute client.



8
9
10
# File 'lib/dot_mailer/account.rb', line 8

def client
  @client
end

Instance Method Details

#create_campaign(attributes) ⇒ Object



58
59
60
# File 'lib/dot_mailer/account.rb', line 58

def create_campaign(attributes)
  Campaign.create(self, attributes)
end

#create_data_field(name, options = {}) ⇒ Object



20
21
22
23
24
# File 'lib/dot_mailer/account.rb', line 20

def create_data_field(name, options = {})
  DataField.create self, name, options

  cache.delete 'data_fields'
end

#data_fieldsObject



14
15
16
17
18
# File 'lib/dot_mailer/account.rb', line 14

def data_fields
  cache.fetch 'data_fields' do
    DataField.all self
  end
end

#find_campaign_by_id(id) ⇒ Object



62
63
64
# File 'lib/dot_mailer/account.rb', line 62

def find_campaign_by_id(id)
  Campaign.find_by_id(self, id)
end

#find_contact_by_email(email) ⇒ Object



30
31
32
# File 'lib/dot_mailer/account.rb', line 30

def find_contact_by_email(email)
  Contact.find_by_email self, email
end

#find_contact_by_id(id) ⇒ Object



34
35
36
# File 'lib/dot_mailer/account.rb', line 34

def find_contact_by_id(id)
  Contact.find_by_id self, id
end

#find_contacts_modified_since(time) ⇒ Object



38
39
40
# File 'lib/dot_mailer/account.rb', line 38

def find_contacts_modified_since(time)
  Contact.modified_since(self, time)
end

#find_segment_by_id(id) ⇒ Object



66
67
68
# File 'lib/dot_mailer/account.rb', line 66

def find_segment_by_id(id)
  DotMailer::Segment.find_by_id(self, id)
end

#find_suppressions_since(time) ⇒ Object



42
43
44
# File 'lib/dot_mailer/account.rb', line 42

def find_suppressions_since(time)
  Suppression.suppressed_since(self, time)
end

#from_addressesObject



50
51
52
53
54
55
56
# File 'lib/dot_mailer/account.rb', line 50

def from_addresses
  response = cache.fetch 'from_addresses' do
    client.get('/custom-from-addresses')
  end

  response.map { |a| FromAddress.new(a) }
end

#import_contacts(contacts, options = {}) ⇒ Object



26
27
28
# File 'lib/dot_mailer/account.rb', line 26

def import_contacts(contacts, options = {})
  ContactImport.import self, contacts, options[:wait_for_finish]
end

#inspectObject



74
75
76
# File 'lib/dot_mailer/account.rb', line 74

def inspect
  to_s
end

#suppress(email) ⇒ Object



46
47
48
# File 'lib/dot_mailer/account.rb', line 46

def suppress(email)
  client.post_json '/contacts/unsubscribe', 'Email' => email
end

#to_sObject



70
71
72
# File 'lib/dot_mailer/account.rb', line 70

def to_s
  "#{self.class.name} client: #{client}"
end