lib/sailthru.rb in sailthru-client-1.14 vs lib/sailthru.rb in sailthru-client-1.15
- old
+ new
@@ -7,11 +7,11 @@
require 'digest/md5'
require 'net/http/post/multipart'
module Sailthru
- Version = VERSION = '1.14'
+ Version = VERSION = '1.15'
class SailthruClientException < Exception
end
module Helpers
@@ -527,12 +527,11 @@
# tags, String | Array
#
# sets horizon data
def set_horizon(email, tags)
data = {}
- data[
- :email] = email
+ data[:email] = email
data[:tags] = (tags.class == Array) ? tags.join(',') : tags
api_post(:horizon, data)
end
# params
@@ -607,19 +606,26 @@
data = {}
data['list'] = list
data['emails'] = Array(emails).join(',')
process_job(:import, data, report_email, postback_url)
end
-
+
# implementation for import job using file upload
def process_import_job_from_file(list, file_path, report_email = nil, postback_url = nil)
data = {}
data['list'] = list
data['file'] = file_path
process_job(:import, data, report_email, postback_url, 'file')
end
+ # implementation for update job using file upload
+ def process_update_job_from_file(file_path, report_email = nil, postback_url = nil)
+ data = {}
+ data['file'] = file_path
+ process_job(:update, data, report_email, postback_url, 'file')
+ end
+
# implementation for snapshot job
def process_snapshot_job(query = {}, report_email = nil, postback_url = nil)
data = {}
data['query'] = query
process_job(:snapshot, data, report_email, postback_url)
@@ -635,11 +641,38 @@
# get status of a job
def get_job_status(job_id)
api_get(:job, {'job_id' => job_id})
end
+ # Get user by Sailthru ID
+ def get_user_by_sid(id, fields = {})
+ api_get(:user, {'id' => id, 'fields' => fields})
+ end
+ # Get user by specified key
+ def get_user_by_key(id, key, fields = {})
+ data = {
+ 'id' => id,
+ 'key' => key,
+ 'fields' => fields
+ }
+ api_get(:user, data)
+ end
+
+ # Creates new user
+ def create_new_user(options = {})
+ options.delete('id')
+ api_post(:user, options)
+ end
+
+ # Save existing user
+ def save_user(id, options = {})
+ data = options
+ data['id'] = id
+ api_post(:user, data)
+ end
+
# Perform API GET request
def api_get(action, data)
api_request(action, data, 'GET')
end
@@ -762,10 +795,10 @@
end
def prepare_json_payload(data)
payload = {
:api_key => @api_key,
- :format => 'json', #fuck XML
+ :format => 'json', #<3 XML
:json => data.to_json
}
payload[:sig] = get_signature_hash(payload, @secret)
payload
end