Class: EmailVision
- Inherits:
-
Object
- Object
- EmailVision
- Defined in:
- lib/email_vision.rb
Constant Summary collapse
- WSDL =
"http://emvapi.emv3.com/apimember/services/MemberService?wsdl"
- NAMESPACE =
'http://api.service.apimember.emailvision.com/'
- SESSION_TIMEOUT =
10*60
- VERSION =
File.read( File.join(File.dirname(__FILE__),'..','VERSION') ).strip
- JOB_STATUS =
{ :finished => 'Job_Done_Or_Does_Not_Exist', :error => 'Error' }
Instance Attribute Summary collapse
-
#options ⇒ Object
Returns the value of attribute options.
Instance Method Summary collapse
- #columns ⇒ Object
- #create(attributes) ⇒ Object
- #create_or_update(attributes) ⇒ Object
- #find(email_or_id) ⇒ Object
-
#initialize(options) ⇒ EmailVision
constructor
A new instance of EmailVision.
-
#job_status(job_id) ⇒ Object
should be one of: Insert, Processing, Processed, Error, Job_Done_Or_Does_Not_Exist.
- #rejoin(email_or_id) ⇒ Object
- #unjoin(email_or_id) ⇒ Object
- #update(attributes) ⇒ Object
- #wait_for_job_to_finish(job_id, options = {}) ⇒ Object
Constructor Details
#initialize(options) ⇒ EmailVision
Returns a new instance of EmailVision.
14 15 16 |
# File 'lib/email_vision.rb', line 14 def initialize() self. = end |
Instance Attribute Details
#options ⇒ Object
Returns the value of attribute options.
8 9 10 |
# File 'lib/email_vision.rb', line 8 def @options end |
Instance Method Details
#columns ⇒ Object
65 66 67 68 69 70 |
# File 'lib/email_vision.rb', line 65 def columns result = execute(:desc_member_table) result = convert_to_hash(result[:fields], :name, :type) result.each{|k,v| result[k] = to_ruby_style(v)} result end |
#create(attributes) ⇒ Object
38 39 40 |
# File 'lib/email_vision.rb', line 38 def create(attributes) execute_by_obj(:insert_member_by_obj, attributes) end |
#create_or_update(attributes) ⇒ Object
42 43 44 |
# File 'lib/email_vision.rb', line 42 def create_or_update(attributes) execute_by_obj(:insert_or_update_member_by_obj, attributes) end |
#find(email_or_id) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/email_vision.rb', line 18 def find(email_or_id) result = execute_by_email_or_id(:get_member, email_or_id) result = result.first if result.is_a?(Array) # may return multiple users if they have the same email -> return first return unless result.is_a?(Hash) result = convert_to_hash(result[:attributes][:entry], :key, :value) result.reject{|k,v| v.nil? } end |
#job_status(job_id) ⇒ Object
should be one of: Insert, Processing, Processed, Error, Job_Done_Or_Does_Not_Exist
47 48 49 |
# File 'lib/email_vision.rb', line 47 def job_status(job_id) execute(:get_member_job_status, :synchro_id => job_id)[:status] end |
#rejoin(email_or_id) ⇒ Object
30 31 32 |
# File 'lib/email_vision.rb', line 30 def rejoin(email_or_id) execute_by_email_or_id(:rejoin_member, email_or_id) end |
#unjoin(email_or_id) ⇒ Object
26 27 28 |
# File 'lib/email_vision.rb', line 26 def unjoin(email_or_id) execute_by_email_or_id(:unjoin_member, email_or_id) end |
#update(attributes) ⇒ Object
34 35 36 |
# File 'lib/email_vision.rb', line 34 def update(attributes) execute_by_obj(:update_member_by_obj, attributes) end |
#wait_for_job_to_finish(job_id, options = {}) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/email_vision.rb', line 51 def wait_for_job_to_finish(job_id, ={}) interval = [:interval] || 5 times = [:times] || 20 times.times do current_status = job_status(job_id) raise "Job failed" if current_status == JOB_STATUS[:error] return true if current_status == JOB_STATUS[:finished] sleep interval end raise "Job not finished in time! #{current_status}" end |