Skip to content

Commit 4324036

Browse files
committed
Typeform API doesn't allow to request specific information about a form, so every method requested all the form information. Now you can request the form information and pass it as a keyword to every other method so the lib won't do a request every time you use a method even if it was the same form.
1 parent 9f8dab0 commit 4324036

1 file changed

Lines changed: 16 additions & 15 deletions

File tree

typeform/client.py

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -52,52 +52,53 @@ def get_form_information(self, uid=None, url=None):
5252
params = {'key': self.api_key}
5353
return self._get('form/{}'.format(uid), params=params)
5454

55-
def get_form_stats(self, uid=None, url=None):
55+
def get_form_stats(self, uid=None, url=None, form=None):
5656
"""Returns stats of form.
5757
Args:
5858
uid:
5959
url:
6060
Returns:
6161
A dict.
6262
"""
63-
form_information = self.get_form_information(uid=uid, url=url)
64-
return form_information['stats']
63+
if form is not None:
64+
return form['stats']
65+
return self.get_form_information(uid=uid, url=url)['stats']
6566

66-
def get_form_questions(self, uid=None, url=None):
67+
def get_form_questions(self, uid=None, url=None, form=None):
6768
"""Returns questions of form.
6869
Args:
6970
uid:
7071
url:
7172
Returns:
7273
A dict.
7374
"""
74-
form_information = self.get_form_information(uid=uid, url=url)
75-
return form_information['questions']
75+
if form is not None:
76+
return form['questions']
77+
return self.get_form_information(uid=uid, url=url)['questions']
7678

77-
def get_form_metadata(self, uid=None, url=None):
79+
def get_form_metadata(self, uid=None, url=None, form=None):
7880
"""Returns metadata of form.
7981
Args:
8082
uid:
8183
url:
8284
Returns:
8385
A dict.
8486
"""
85-
form_information = self.get_form_information(uid=uid, url=url)
86-
return form_information['responses']
87+
if form is not None:
88+
return form['responses']
89+
return self.get_form_information(uid=uid, url=url)['responses']
8790

88-
def get_form_answers(self, uid=None, url=None):
91+
def get_form_answers(self, uid=None, url=None, form=None):
8992
"""Returns answers of form.
9093
Args:
9194
uid:
9295
url:
9396
Returns:
9497
A list.
9598
"""
96-
form_information = self.get_form_information(uid=uid, url=url)
97-
list_answers = []
98-
for answers in form_information['responses']:
99-
list_answers.append(answers['answers'])
100-
return list_answers
99+
if form is None:
100+
form = self.get_form_information(uid=uid, url=url)
101+
return [answers['answers'] for answers in form['responses']]
101102

102103
def get_forms(self):
103104
"""Returns all forms

0 commit comments

Comments
 (0)