Sha256: 73388790a1c0c23bdbde9f9d29fb9ac6acca61ecfe478f644f99f5b116bc0a5d
Contents?: true
Size: 1.34 KB
Versions: 1
Compression:
Stored size: 1.34 KB
Contents
module ActionNetworkRest class People < Base def base_path 'people/' end def create(person_data, tags: []) post_body = {'person' => person_data} if tags.any? post_body['add_tags'] = tags end response = client.post_request base_path, post_body object_from_response(response) end def unsubscribe(id) request_body = {email_addresses: [{status: 'unsubscribed'}]} response = client.put_request "#{base_path}#{url_escape(id)}", request_body object_from_response(response) end def find_by_email(email) # This works for parsing exactly 1 person's info out of the response. # The response we get from Action Network is expected to have # # "_embedded": { # "osdi:people": [{ # "identifiers": [ # "action_network:c947bcd0-929e-11e3-a2e9-12313d316c29" # .... # ] # }] # } # url_encoded_filter_string = url_escape("email_address eq '#{email}'") response = client.get_request "#{base_path}?filter=#{url_encoded_filter_string}" person_object = response.body[:_embedded][osdi_key].first if person_object.present? set_action_network_id_on_object(person_object) end end private def osdi_key 'osdi:people' end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
action_network_rest-0.5.0 | lib/action_network_rest/people.rb |