Class: OfficeBoy::Subscriber
- Inherits:
-
Object
- Object
- OfficeBoy::Subscriber
- Defined in:
- lib/office_boy/subscriber.rb
Class Method Summary collapse
Class Method Details
.add(list:, attributes:) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/office_boy/subscriber.rb', line 4 def add(list:, attributes:) raise Errors::NotDefiniedSubscriptionList unless OfficeBoy.configuration.lists.key?(list) list_id = OfficeBoy.configuration.lists[list] params = { 'list_ids' => [list_id], 'contacts' => [attributes] } response = OfficeBoy::Request.call( method_name: :put, path: 'marketing/contacts', payload: params ) response.code == 202 end |
.find(list:, email:) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/office_boy/subscriber.rb', line 40 def find(list:, email:) query = "primary_email LIKE '#{email}%' AND CONTAINS(list_ids, '#{list}')" response = OfficeBoy::Request.call( method_name: :post, path: 'marketing/contacts/search', payload: { query: query } ) parsed_response = JSON.parse(response.body) return unless parsed_response['result'].size == 1 parsed_response['result'].first end |
.remove(list:, email:) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/office_boy/subscriber.rb', line 23 def remove(list:, email:) raise Errors::NotDefiniedSubscriptionList unless OfficeBoy.configuration.lists.key?(list) list_id = OfficeBoy.configuration.lists[list] subscriber = find(list: list_id, email: email) raise Errors::SubscriberNotFound unless subscriber response = OfficeBoy::Request.call( method_name: :delete, path: "marketing/contacts?ids=#{subscriber['id']}" ) response.code == 202 end |