Module: GoogleContactsApi::Contacts

Included in:
Group, User
Defined in:
lib/google_contacts_api/contacts.rb

Instance Method Summary collapse

Instance Method Details

#get_contacts(params = {}) ⇒ Object

Retrieve the contacts for this user or group



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/google_contacts_api/contacts.rb', line 5

def get_contacts(params = {})
  # TODO: Should return empty ContactSet (haven't implemented one yet)
  return [] unless @api
  params = params.with_indifferent_access

  # compose params into a string
  # See http://code.google.com/apis/contacts/docs/3.0/reference.html#Parameters
  # alt, q, max-results, start-index, updated-min,
  # orderby, showdeleted, requirealldeleted, sortorder, group
  params["max-results"] = 100000 unless params.key?("max-results")
  url = "contacts/default/full"
  response = @api.get(url, params)
  
  # TODO: Define some fancy exceptions
  case GoogleContactsApi::Api.parse_response_code(response)
  when 401; raise
  when 403; raise
  when 404; raise
  when 400...500; raise
  when 500...600; raise
  end
  GoogleContactsApi::ContactSet.new(response.body, @api)
end