module CmEmail
Constants
- VERSION
Attributes
configuration[RW]
Public Class Methods
add_segment_contact(contact_email, segment_id)
click to toggle source
Adds a contact to a segment.
# File lib/cm_email.rb, line 72 def add_segment_contact(contact_email, segment_id) request_body = { contact_email: contact_email, segment_id: segment_id } create_response = request_cm_email('/api/segments/segment_contacts/add', request_body) end
api_key()
click to toggle source
# File lib/cm_email.rb, line 98 def api_key return configuration.api_key end
api_mode()
click to toggle source
# File lib/cm_email.rb, line 102 def api_mode return configuration.api_mode end
configure() { |configuration| ... }
click to toggle source
# File lib/cm_email.rb, line 15 def configure yield(configuration) end
create_contact(first_name, email, last_name = '', date_of_birth = '', country = '')
click to toggle source
Either finds and updates, or creates a contact (with status subscribed).
# File lib/cm_email.rb, line 20 def create_contact(first_name, email, last_name = '', date_of_birth = '', country = '') request_body = { first_name: first_name, email: email, last_name: last_name, date_of_birth: date_of_birth, country: country } create_response = request_cm_email('/api/contacts', request_body) end
create_segment(name, contact_emails, note = '')
click to toggle source
Creates a segment (with atleast one existing contact). expected format for 'contact_emails' is Array.
# File lib/cm_email.rb, line 41 def create_segment(name, contact_emails, note = '') request_body = { name: name, note: note, segment: { segment_contacts: contact_emails } } create_response = request_cm_email('/api/segments', request_body) end
remove_segment_contact(contact_email, segment_id)
click to toggle source
Removes contact from the segment.
# File lib/cm_email.rb, line 63 def remove_segment_contact(contact_email, segment_id) request_body = { contact_email: contact_email, segment_id: segment_id } create_response = request_cm_email('/api/segments/segment_contacts/remove', request_body, 'delete') end
request_cm_email(path, request_body, method = 'post')
click to toggle source
# File lib/cm_email.rb, line 80 def request_cm_email(path, request_body, method = 'post') domain_url = if api_mode.eql?('staging') 'https://staging.cm-email.commutatus.com/' else 'https://cm-email.commutatus.com/' end uri = URI.parse(domain_url + path) headers = {'Content-Type': 'application/json', 'Api-Key': api_key} http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true request = method == 'delete'? Net::HTTP::Delete.new(uri.request_uri, headers) : Net::HTTP::Post.new(uri.request_uri, headers) puts request_body.to_json request.body = request_body.to_json # Send the request response = http.request(request) return JSON.parse(response.body) end
unsubscribe_contact(contact_email)
click to toggle source
Finds the contact and unsubscribes it from every segment.
# File lib/cm_email.rb, line 32 def unsubscribe_contact(contact_email) request_body = { contact_email: contact_email } create_response = request_cm_email('/api/contacts/unsubscribe', request_body) end
update_segment(new_name, note = '', segment_id = '', existing_name = '')
click to toggle source
# File lib/cm_email.rb, line 52 def update_segment(new_name, note = '', segment_id = '', existing_name = '') request_body = { new_name: new_name, note: note, segment_id: segment_id, existing_name: existing_name, } create_response = request_cm_email('/api/segments/update', request_body) end