Class: Freshmail::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/freshmail/client.rb

Constant Summary collapse

URL =
'https://api.freshmail.com/'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_key, api_secret) ⇒ Client

Returns a new instance of Client.



7
8
9
10
11
12
13
14
15
# File 'lib/freshmail/client.rb', line 7

def initialize(api_key, api_secret)
  @api_key = api_key || self.class.api_key || ENV['FRESHMAIL_API_KEY']
  @api_key = @api_key.strip if @api_key
  @api_secret = api_secret || self.class.api_secret || ENV['FRESHMAIL_API_secret']
  @api_secret = @api_secret.strip if @api_secret

  raise Freshmail::CredentialsMissingError, 'api_key or api_secret are missing' unless @api_secret or @api_key
  raise Freshmail::CredentialsInvalidError, 'api_key or api_secret are invalid' unless self.ping['data'] == 'pong'
end

Instance Attribute Details

#api_keyObject

Returns the value of attribute api_key.



3
4
5
# File 'lib/freshmail/client.rb', line 3

def api_key
  @api_key
end

#api_secretObject

Returns the value of attribute api_secret.



3
4
5
# File 'lib/freshmail/client.rb', line 3

def api_secret
  @api_secret
end

Instance Method Details

#add_subscriber(sub_info = {}) ⇒ Object



36
37
38
# File 'lib/freshmail/client.rb', line 36

def add_subscriber(sub_info = {})
  call_freshmail(:post, 'subscriber/add', sub_info)
end

#batch_add_subscriber(sub_info = {}) ⇒ Object



44
45
46
# File 'lib/freshmail/client.rb', line 44

def batch_add_subscriber(sub_info = {})
  call_freshmail(:post, 'subscriber/addMultiple', sub_info)
end

#batch_delete_subscriber(sub_info = {}) ⇒ Object



52
53
54
# File 'lib/freshmail/client.rb', line 52

def batch_delete_subscriber(sub_info = {})
  call_freshmail(:post, 'subscriber/deleteMultiple', sub_info)
end

#create_list(list_info = {}) ⇒ Object



60
61
62
# File 'lib/freshmail/client.rb', line 60

def create_list(list_info = {})
  call_freshmail(:post, 'subscribers_list/create', list_info)
end

#delete_list(list_info = {}) ⇒ Object



68
69
70
# File 'lib/freshmail/client.rb', line 68

def delete_list(list_info = {})
  call_freshmail(:post, 'subscribers_list/delete', list_info)
end

#delete_subscriber(sub_info = {}) ⇒ Object



48
49
50
# File 'lib/freshmail/client.rb', line 48

def delete_subscriber(sub_info = {})
  call_freshmail(:post, 'subscriber/delete', sub_info)
end

#edit_subscriber(sub_info = {}) ⇒ Object



40
41
42
# File 'lib/freshmail/client.rb', line 40

def edit_subscriber(sub_info = {})
  call_freshmail(:post, 'subscriber/edit', sub_info)
end

#listsObject



56
57
58
# File 'lib/freshmail/client.rb', line 56

def lists
  call_freshmail(:get, 'subscribers_list/lists')
end

#mail(mail_data = {}) ⇒ Object



21
22
23
# File 'lib/freshmail/client.rb', line 21

def mail(mail_data = {})
  call_freshmail(:post, 'mail', mail_data)
end

#pingObject



17
18
19
# File 'lib/freshmail/client.rb', line 17

def ping
  call_freshmail(:get, 'ping')
end

#subscriber(sub_info = {}) ⇒ Object



25
26
27
28
29
30
# File 'lib/freshmail/client.rb', line 25

def subscriber(sub_info = {})
  list = sub_info[:list]
  email = sub_info[:email]

  call_freshmail(:get, "subscriber/get/#{list}/#{email}")
end

#subscribers(sub_info = {}) ⇒ Object



32
33
34
# File 'lib/freshmail/client.rb', line 32

def subscribers(sub_info = {})
  call_freshmail(:post, 'subscriber/getMultiple', sub_info)
end

#update_list(list_info = {}) ⇒ Object



64
65
66
# File 'lib/freshmail/client.rb', line 64

def update_list(list_info = {})
  call_freshmail(:post, 'subscribers_list/update', list_info)
end