Module: Flapjack::Diner::Resources::Contacts

Included in:
Flapjack::Diner
Defined in:
lib/flapjack-diner/resources/contacts.rb

Instance Method Summary collapse

Instance Method Details

#contacts(*ids) ⇒ Object



23
24
25
# File 'lib/flapjack-diner/resources/contacts.rb', line 23

def contacts(*ids)
  perform_get('contacts', '/contacts', ids)
end

#create_contacts(*args) ⇒ Object



12
13
14
15
16
17
18
19
20
21
# File 'lib/flapjack-diner/resources/contacts.rb', line 12

def create_contacts(*args)
  data = unwrap_create_data(*args)
  validate_params(data) do
    validate :query => [:first_name, :last_name, :email],
             :as => [:required, :string]
    validate :query => :timezone,   :as => :string
    validate :query => :tags,       :as => :array_of_strings
  end
  perform_post('/contacts', nil, :contacts => data)
end

#delete_contacts(*ids) ⇒ Object



40
41
42
43
44
# File 'lib/flapjack-diner/resources/contacts.rb', line 40

def delete_contacts(*ids)
  raise "'delete_contacts' requires at least one contact id " \
        'parameter' if ids.nil? || ids.empty?
  perform_delete('/contacts', ids)
end

#update_contacts(*args) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/flapjack-diner/resources/contacts.rb', line 27

def update_contacts(*args)
  ids, params = unwrap_ids(*args), unwrap_params(*args)
  raise "'update_contacts' requires at least one contact id " \
        'parameter' if ids.nil? || ids.empty?
  validate_params(params) do
    validate :query => [:first_name, :last_name,
                        :email, :timezone], :as => :string
    validate :query => :tags,       :as => :array_of_strings
  end
  perform_patch("/contacts/#{escaped_ids(ids)}", nil,
                update_contacts_ops(params))
end