Class: Responsys::Member
- Inherits:
-
Object
- Object
- Responsys::Member
- Includes:
- Api, Api::Object
- Defined in:
- lib/responsys/member.rb
Instance Attribute Summary collapse
-
#email ⇒ Object
Returns the value of attribute email.
-
#user_riid ⇒ Object
Returns the value of attribute user_riid.
Instance Method Summary collapse
- #add_to_list(list, subscribe = false) ⇒ Object
-
#initialize(email, riid = nil) ⇒ Member
constructor
A new instance of Member.
- #present_in_list?(list) ⇒ Boolean
- #present_in_profile?(list) ⇒ Boolean
- #retrieve_profile_extension(profile_extension, fields) ⇒ Object
- #subscribe(list) ⇒ Object
- #subscribed?(list) ⇒ Boolean
- #unsubscribe(list) ⇒ Object
- #update(list, data) ⇒ Object
Constructor Details
#initialize(email, riid = nil) ⇒ Member
10 11 12 13 14 |
# File 'lib/responsys/member.rb', line 10 def initialize(email, riid = nil) @email = email @user_riid = riid @client = Client.instance end |
Instance Attribute Details
#email ⇒ Object
Returns the value of attribute email.
8 9 10 |
# File 'lib/responsys/member.rb', line 8 def email @email end |
#user_riid ⇒ Object
Returns the value of attribute user_riid.
8 9 10 |
# File 'lib/responsys/member.rb', line 8 def user_riid @user_riid end |
Instance Method Details
#add_to_list(list, subscribe = false) ⇒ Object
16 17 18 19 20 21 |
# File 'lib/responsys/member.rb', line 16 def add_to_list(list, subscribe = false) data = { EMAIL_ADDRESS_: @email, EMAIL_PERMISSION_STATUS_: subscribe ? "I" : "O" } record = RecordData.new([data]) @client.merge_list_members_riid(list, record, ListMergeRule.new(insertOnNoMatch: true, updateOnMatch: "NO_UPDATE")) end |
#present_in_list?(list) ⇒ Boolean
53 54 55 56 57 58 59 60 61 |
# File 'lib/responsys/member.rb', line 53 def present_in_list?(list) if !@user_riid.nil? response = lookup_list_via_key(list, "RIID", @user_riid) else response = lookup_list_via_key(list, "EMAIL_ADDRESS", @email) end !(response[:status] == "failure" && response[:error][:code] == "RECORD_NOT_FOUND") end |
#present_in_profile?(list) ⇒ Boolean
45 46 47 48 49 50 51 |
# File 'lib/responsys/member.rb', line 45 def present_in_profile?(list) return Responsys::Helper.("member.riid_missing") if @user_riid.nil? response = lookup_profile_via_key(list, "RIID", @user_riid) !(response[:status] == "failure" && response[:error][:code] == "RECORD_NOT_FOUND") end |
#retrieve_profile_extension(profile_extension, fields) ⇒ Object
23 24 25 26 27 28 |
# File 'lib/responsys/member.rb', line 23 def retrieve_profile_extension(profile_extension, fields) return Responsys::Helper.("member.riid_missing") if @user_riid.nil? return Responsys::Helper.("member.record_not_found") unless present_in_profile?(profile_extension) @client.retrieve_profile_extension_records(profile_extension, QueryColumn.new("RIID"), fields, [@user_riid]) end |
#subscribe(list) ⇒ Object
30 31 32 |
# File 'lib/responsys/member.rb', line 30 def subscribe(list) update(list, [{ EMAIL_ADDRESS_: @email, EMAIL_PERMISSION_STATUS_: "I" }]) end |
#subscribed?(list) ⇒ Boolean
63 64 65 66 67 68 |
# File 'lib/responsys/member.rb', line 63 def subscribed?(list) return Responsys::Helper.("member.record_not_found") unless present_in_list?(list) response = @client.retrieve_list_members(list, QueryColumn.new("EMAIL_ADDRESS"), %w(EMAIL_PERMISSION_STATUS_), [@email]) response[:data][0][:EMAIL_PERMISSION_STATUS_] == "I" end |
#unsubscribe(list) ⇒ Object
34 35 36 |
# File 'lib/responsys/member.rb', line 34 def unsubscribe(list) update(list, [{ EMAIL_ADDRESS_: @email, EMAIL_PERMISSION_STATUS_: "O" }]) end |
#update(list, data) ⇒ Object
38 39 40 41 42 43 |
# File 'lib/responsys/member.rb', line 38 def update(list, data) return Responsys::Helper.("member.record_not_found") unless present_in_list?(list) record = RecordData.new(data) @client.merge_list_members(list, record) end |