Module: MaxemailApiSubscriptions
- Extended by:
- MaxemailApiSubscriptions
- Includes:
- MaxemailApiShared
- Included in:
- MaxemailApi, MaxemailApiSubscriptions
- Defined in:
- lib/maxemail_api/subscriptions.rb
Instance Method Summary collapse
- #available_subscriptions ⇒ Object
- #fetch_list ⇒ Object
- #fetch_profile_data(email_address:, profile_descriptions:) ⇒ Object
- #find_recipient_id(email_address: nil) ⇒ Object
- #inserted?(email_address:, list_id:) ⇒ Boolean
- #subscribe(email_address:, list_id:) ⇒ Object
- #subscribed?(email_address:, list_id:) ⇒ Boolean
- #subscriptions(email_address: nil, recipient_id: nil, list_id:) ⇒ Object
- #unsubscribe(email_address: nil, recipient_id: nil, list_id:) ⇒ Object
- #update_recipient(email_address:, data:) ⇒ Object
- #update_subscription_email(old_email_address: nil, recipient_id: nil, new_email_address:) ⇒ Object
Methods included from MaxemailApiShared
Instance Method Details
#available_subscriptions ⇒ Object
64 65 66 67 |
# File 'lib/maxemail_api/subscriptions.rb', line 64 def available_subscriptions lists = JSON.parse(fetch_list) lists.delete_if { |list| list['type'] != 'include' } end |
#fetch_list ⇒ Object
69 70 71 |
# File 'lib/maxemail_api/subscriptions.rb', line 69 def fetch_list MaxemailApiShared.send_request(params: { method: 'fetchAll' }, method: 'list') end |
#fetch_profile_data(email_address:, profile_descriptions:) ⇒ Object
54 55 56 |
# File 'lib/maxemail_api/subscriptions.rb', line 54 def fetch_profile_data(email_address:, profile_descriptions:) MaxemailApiShared.send_request(params: { method: 'fetchProfileDataByEmailAddress', emailAddress: email_address, profileDescriptions: profile_descriptions }, method: 'recipient') end |
#find_recipient_id(email_address: nil) ⇒ Object
58 59 60 61 62 |
# File 'lib/maxemail_api/subscriptions.rb', line 58 def find_recipient_id(email_address: nil) response = MaxemailApiShared.send_request(params: { method: 'findByEmailAddress', emailAddress: email_address }, method: 'recipient').to_s return nil if response == 'null' response end |
#inserted?(email_address:, list_id:) ⇒ Boolean
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/maxemail_api/subscriptions.rb', line 21 def inserted?(email_address:, list_id:) response = MaxemailApiShared.send_request(params: { method: 'fetchRecipient', listID: list_id, recipientId: find_recipient_id(email_address: email_address) }, method: 'list') return false if response.body.to_s == 'false' response = JSON.parse(response.body) return false if response['success'].to_s == 'false' return true if response['subscribed'].to_s == '0' return true if response['subscribed'].to_s == '1' rescue StandardError false end |
#subscribe(email_address:, list_id:) ⇒ Object
5 6 7 8 |
# File 'lib/maxemail_api/subscriptions.rb', line 5 def subscribe(email_address:, list_id:) return MaxemailApiShared.send_request(params: { method: 'insertRecipient', data: { email_address: email_address, subscribed: 1 }.to_json, listID: list_id }, method: 'list') unless inserted?(email_address: email_address, list_id: list_id) MaxemailApiShared.send_request(params: { method: 'updateRecipient', data: { email_address: email_address, subscribed: 1 }.to_json, listID: list_id, recipientId: find_recipient_id(email_address: email_address) }, method: 'list') end |
#subscribed?(email_address:, list_id:) ⇒ Boolean
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/maxemail_api/subscriptions.rb', line 10 def subscribed?(email_address:, list_id:) response = MaxemailApiShared.send_request(params: { method: 'fetchRecipient', listID: list_id, recipientId: find_recipient_id(email_address: email_address) }, method: 'list') return false if response.body.to_s == 'false' response = JSON.parse(response.body) return false if response['success'].to_s == 'false' return false if response['subscribed'].to_s == '0' return true if response['subscribed'].to_s == '1' rescue StandardError false end |
#subscriptions(email_address: nil, recipient_id: nil, list_id:) ⇒ Object
38 39 40 41 42 |
# File 'lib/maxemail_api/subscriptions.rb', line 38 def subscriptions(email_address: nil, recipient_id: nil, list_id:) recipient_id = find_recipient_id(email_address: email_address) if recipient_id.nil? return false if recipient_id.nil? MaxemailApiShared.send_request(params: { method: 'fetchLists', listID: list_id, recipientId: recipient_id }, method: 'recipient') end |
#unsubscribe(email_address: nil, recipient_id: nil, list_id:) ⇒ Object
32 33 34 35 36 |
# File 'lib/maxemail_api/subscriptions.rb', line 32 def unsubscribe(email_address: nil, recipient_id: nil, list_id:) recipient_id = find_recipient_id(email_address: email_address) if recipient_id.nil? return false if recipient_id.nil? MaxemailApiShared.send_request(params: { method: 'updateRecipient', data: { email_address: email_address, subscribed: 0 }.to_json, listID: list_id, recipientId: recipient_id }, method: 'list') end |
#update_recipient(email_address:, data:) ⇒ Object
50 51 52 |
# File 'lib/maxemail_api/subscriptions.rb', line 50 def update_recipient(email_address:, data:) MaxemailApiShared.send_request(params: { method: 'updateByEmailAddress', emailAddress: email_address, data: data }, method: 'recipient') end |
#update_subscription_email(old_email_address: nil, recipient_id: nil, new_email_address:) ⇒ Object
44 45 46 47 48 |
# File 'lib/maxemail_api/subscriptions.rb', line 44 def update_subscription_email(old_email_address: nil, recipient_id: nil, new_email_address:) recipient_id = find_recipient_id(email_address: old_email_address) if recipient_id.nil? return false if recipient_id.nil? MaxemailApiShared.send_request(params: { method: 'update', data: { email_address: new_email_address }.to_json, recipientId: recipient_id }, method: 'recipient') end |