Class: ConstantContact::Services::ActivityService

Inherits:
BaseService
  • Object
show all
Defined in:
lib/constantcontact/services/activity_service.rb

Class Method Summary collapse

Class Method Details

.add_clear_lists_activity(lists) ⇒ Activity

Create a Clear Lists Activity

Parameters:

  • lists (Array<lists>)
    • array of list id’s to be cleared

Returns:

  • (Activity)


74
75
76
77
78
79
80
81
# File 'lib/constantcontact/services/activity_service.rb', line 74

def add_clear_lists_activity(lists)
  url = Util::Config.get('endpoints.base_url') +
        Util::Config.get('endpoints.clear_lists_activity')
  url = build_url(url)
  payload = {'lists' => lists}.to_json
  response = RestClient.post(url, payload, get_headers())
  Components::Activity.create(JSON.parse(response.body))
end

.add_export_contacts_activity(export_contacts) ⇒ Activity

Create an Export Contacts Activity

Parameters:

  • export_contacts (ExportContacts)

Returns:

  • (Activity)


87
88
89
90
91
92
93
94
# File 'lib/constantcontact/services/activity_service.rb', line 87

def add_export_contacts_activity(export_contacts)
  url = Util::Config.get('endpoints.base_url') +
        Util::Config.get('endpoints.export_contacts_activity')
  url = build_url(url)
  payload = export_contacts.to_json
  response = RestClient.post(url, payload, get_headers())
  Components::Activity.create(JSON.parse(response.body))
end

.add_remove_contacts_from_lists_activity(email_addresses, lists) ⇒ Activity

Create a Remove Contacts From Lists Activity

Parameters:

  • email_addresses (<Array>EmailAddress)
  • lists (<Array>RemoveFromLists)

Returns:

  • (Activity)


101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/constantcontact/services/activity_service.rb', line 101

def add_remove_contacts_from_lists_activity(email_addresses, lists)
  url = Util::Config.get('endpoints.base_url') +
        Util::Config.get('endpoints.remove_from_lists_activity')
  url = build_url(url)

  payload = { 'import_data' => [], 'lists' => lists }
  email_addresses.each do |email_address|
    payload['import_data'] << { 'email_addresses' => [email_address] }
  end
  payload = payload.to_json

  response = RestClient.post(url, payload, get_headers())
  Components::Activity.create(JSON.parse(response.body))
end

.add_remove_contacts_from_lists_activity_from_file(file_name, contents, lists) ⇒ Activity

Create an Remove Contacts Activity from a file. Valid file types are txt, csv, xls, xlsx

Parameters:

  • file_name (String)
    • The name of the file (ie: contacts.csv)

  • contents (String)
    • The content of the file

  • lists (String)
    • Comma separated list of ContactList id’ to add the contacts too

Returns:

  • (Activity)


122
123
124
125
126
127
128
129
130
131
# File 'lib/constantcontact/services/activity_service.rb', line 122

def add_remove_contacts_from_lists_activity_from_file(file_name, contents, lists)
  url = Util::Config.get('endpoints.base_url') +
        Util::Config.get('endpoints.remove_from_lists_activity')
  url = build_url(url)

  payload = { :file_name => file_name, :lists => lists, :data => contents, :multipart => true }

  response = RestClient.post(url, payload, get_headers())
  Components::Activity.create(JSON.parse(response.body))
end

.create_add_contacts_activity(add_contacts) ⇒ Activity

Create an Add Contacts Activity

Parameters:

  • add_contacts (AddContacts)

Returns:

  • (Activity)


44
45
46
47
48
49
50
51
# File 'lib/constantcontact/services/activity_service.rb', line 44

def create_add_contacts_activity(add_contacts)
  url = Util::Config.get('endpoints.base_url') +
        Util::Config.get('endpoints.add_contacts_activity')
  url = build_url(url)
  payload = add_contacts.to_json
  response = RestClient.post(url, payload, get_headers())
  Components::Activity.create(JSON.parse(response.body))
end

.create_add_contacts_activity_from_file(file_name, contents, lists) ⇒ Activity

Create an Add Contacts Activity from a file. Valid file types are txt, csv, xls, xlsx

Parameters:

  • file_name (String)
    • The name of the file (ie: contacts.csv)

  • contents (String)
    • The content of the file

  • lists (String)
    • Comma separated list of ContactList id’s to add the contacts to

Returns:

  • (Activity)


59
60
61
62
63
64
65
66
67
68
# File 'lib/constantcontact/services/activity_service.rb', line 59

def create_add_contacts_activity_from_file(file_name, contents, lists)
  url = Util::Config.get('endpoints.base_url') +
        Util::Config.get('endpoints.add_contacts_activity')
  url = build_url(url)

  payload = { :file_name => file_name, :lists => lists, :data => contents, :multipart => true }

  response = RestClient.post(url, payload, get_headers())
  Components::Activity.create(JSON.parse(response.body))
end

.get_activities(params = {}) ⇒ Array<Activity>

Get a set of activities

Parameters:

  • params (Hash) (defaults to: {})
    • query parameters to be appended to the url

Returns:

  • (Array<Activity>)


15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/constantcontact/services/activity_service.rb', line 15

def get_activities(params = {})
  url = Util::Config.get('endpoints.base_url') + Util::Config.get('endpoints.activities')
  url = build_url(url, params)
  response = RestClient.get(url, get_headers())

  activities = []
  JSON.parse(response.body).each do |activity|
    activities << Components::Activity.create(activity)
  end

  activities
end

.get_activity(activity_id) ⇒ Activity

Get an array of activities

Parameters:

  • activity_id (String)
    • Activity id

Returns:

  • (Activity)


32
33
34
35
36
37
38
# File 'lib/constantcontact/services/activity_service.rb', line 32

def get_activity(activity_id)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.activity'), activity_id)
  url = build_url(url)
  response = RestClient.get(url, get_headers())
  Components::Activity.create(JSON.parse(response.body))
end