class Dotloop::Contact
Constants
- CONTACT_FIELDS
Attributes
client[RW]
Public Class Methods
new(client:)
click to toggle source
# File lib/dotloop/contact.rb, line 11 def initialize(client:) @client = client end
Public Instance Methods
all(options = {})
click to toggle source
# File lib/dotloop/contact.rb, line 15 def all(options = {}) contacts = [] url = '/contact' (1..MAX_CONTACTS).each do |i| options[:batch_number] = i current_contacts = @client.get(url, query_params(options))[:data].map do |contact_attrs| Dotloop::Models::Contact.new(contact_attrs) end contacts += current_contacts break if current_contacts.size < BATCH_SIZE end contacts end
create(params: {})
click to toggle source
# File lib/dotloop/contact.rb, line 34 def create(params: {}) data = {} params.each do |key, value| CONTACT_FIELDS.include?(key.to_s) || next data[key] = value end contact_data = @client.post("/contact", data)[:data] Dotloop::Models::Contact.new(contact_data) end
delete(contact_id:)
click to toggle source
# File lib/dotloop/contact.rb, line 56 def delete(contact_id:) @client.delete("/contact/#{contact_id.to_i}") end
find(contact_id:)
click to toggle source
# File lib/dotloop/contact.rb, line 29 def find(contact_id:) contact_data = @client.get("/contact/#{contact_id.to_i}")[:data] Dotloop::Models::Contact.new(contact_data) end
update(contact_id:, params: {})
click to toggle source
# File lib/dotloop/contact.rb, line 45 def update(contact_id:, params: {}) data = {} params.each do |key, value| CONTACT_FIELDS.include?(key.to_s) || next data[key] = value end contact_data = @client.patch("/contact/#{contact_id.to_i}", data)[:data] Dotloop::Models::Contact.new(contact_data) end
Private Instance Methods
query_params(options)
click to toggle source
# File lib/dotloop/contact.rb, line 62 def query_params(options) { batch_number: batch_number(options), batch_size: batch_size(options), filter: options[:filter] }.delete_if { |_, v| should_delete(v) } end