From 0fefc5cff1a950df24bafd993cb4f184b8bf21d3 Mon Sep 17 00:00:00 2001 From: Quentame Date: Fri, 20 Mar 2020 23:00:42 +0100 Subject: [PATCH] Fix Contact limit to 500 (#249) * update contacts to fetch more than 500 contacts * Make it work Co-authored-by: Joshua Meier --- pyicloud/services/contacts.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/pyicloud/services/contacts.py b/pyicloud/services/contacts.py index ef05163..258862d 100644 --- a/pyicloud/services/contacts.py +++ b/pyicloud/services/contacts.py @@ -16,6 +16,7 @@ class ContactsService(object): self._service_root = service_root self._contacts_endpoint = '%s/co' % self._service_root self._contacts_refresh_url = '%s/startup' % self._contacts_endpoint + self._contacts_next_url = '%s/contacts' % self._contacts_endpoint self._contacts_changeset_url = '%s/changeset' % self._contacts_endpoint def refresh_client(self): @@ -35,9 +36,22 @@ class ContactsService(object): ) self.response = req.json() + params_next = dict(params_contacts) + params_next.update({ + 'prefToken': self.response["prefToken"], + 'syncToken': self.response["syncToken"], + 'limit': '0', + 'offset': '0', + }) + req = self.session.get( + self._contacts_next_url, + params=params_next + ) + self.response = req.json() + def all(self): """ Retrieves all contacts. """ self.refresh_client() - return self.response['contacts'] + return self.response.get('contacts')