Class: IContact::Api

Inherits:
Object
  • Object
show all
Includes:
Accounts, ClientFolders, Contacts, CustomFields, Lists, Subscriptions, Users, Connection
Defined in:
lib/icontact/api.rb,
lib/icontact/api/lists.rb,
lib/icontact/api/users.rb,
lib/icontact/api/accounts.rb,
lib/icontact/api/contacts.rb,
lib/icontact/api/custom_fields.rb,
lib/icontact/api/subscriptions.rb,
lib/icontact/api/client_folders.rb

Defined Under Namespace

Modules: Accounts, ClientFolders, Contacts, CustomFields, Lists, Subscriptions, Users

Constant Summary

Constants included from Connection

Connection::BASE_URL, Connection::DEFAULT_HEADERS

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Users

#create_user, #create_users, #delete_user, #get_user, #get_users, #update_user, #update_users

Methods included from Subscriptions

#create_subscription, #create_subscriptions, #get_subscription, #get_subscriptions, #move_contact, #update_subscription, #update_subscriptions

Methods included from Lists

#create_list, #create_lists, #delete_list, #get_list, #get_lists, #update_list, #update_list!, #update_lists

Methods included from CustomFields

#create_custom_field, #create_custom_fields, #delete_custom_field, #get_custom_field, #get_custom_fields, #update_custom_field, #update_custom_field!, #update_custom_fields

Methods included from Contacts

#create_contact, #create_contacts, #delete_contact, #find_contacts, #get_contact, #get_contacts, #update_contact, #update_contact!, #update_contacts

Methods included from ClientFolders

#create_client_folder, #create_client_folders, #get_client_folder, #get_client_folders, #update_client_folder, #update_client_folder!, #update_client_folders

Methods included from Accounts

#get_account, #get_accounts, #update_account

Methods included from Connection

#delete, #get, #post, #put

Constructor Details

#initialize(username, password, app_id) ⇒ Api

Returns a new instance of Api.

Raises:

  • (ArgumentError)


21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/icontact/api.rb', line 21

def initialize(username, password, app_id)
  raise ArgumentError, 'Username cannot be nil' if username.nil?
  raise ArgumentError, 'Password cannot be nil' if password.nil?
  raise ArgumentError, 'App ID cannot be nil' if app_id.nil?

  @app_id     = app_id
  @username   = username
  @password   = password
  @account_id = get_accounts.first['accountId']
  raise IContact::NotAuthorized, 'Unable to find account' if .nil?
  @client_folder_id = get_client_folders.first['clientFolderId']
  raise IContact::NotAuthorized, 'Unable to find client folder' if client_folder_id.nil?
end

Instance Attribute Details

#account_idObject

Returns the value of attribute account_id.



18
19
20
# File 'lib/icontact/api.rb', line 18

def 
  @account_id
end

#app_idObject (readonly)

Returns the value of attribute app_id.



19
20
21
# File 'lib/icontact/api.rb', line 19

def app_id
  @app_id
end

#client_folder_idObject

Returns the value of attribute client_folder_id.



18
19
20
# File 'lib/icontact/api.rb', line 18

def client_folder_id
  @client_folder_id
end

#passwordObject (readonly)

Returns the value of attribute password.



19
20
21
# File 'lib/icontact/api.rb', line 19

def password
  @password
end

#usernameObject (readonly)

Returns the value of attribute username.



19
20
21
# File 'lib/icontact/api.rb', line 19

def username
  @username
end

Instance Method Details

#pingObject



35
36
37
38
39
40
# File 'lib/icontact/api.rb', line 35

def ping
  return false if .nil? || client_folder_id.nil?
  url = "#{BASE_URL}/icp/a/#{}/c/#{client_folder_id}/"
  response = connection.run_request(:get, url, '', headers)
  response.status.to_i == 200
end