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