Skip to content

Commit f45796c

Browse files
author
Lelia
committed
Revert "changes support api"
This reverts commit 0141e6b.
1 parent 119ef03 commit f45796c

6 files changed

Lines changed: 56 additions & 188 deletions

File tree

pruebas.py

Whitespace-only changes.

pruebas2.py

Whitespace-only changes.

typeform/client.py

Lines changed: 56 additions & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,35 @@
11
import requests
2-
from requests.auth import AuthBase
3-
from typeform import exception
4-
from typeform.enumerator import ErrorEnum
5-
from typeform.clientauth import ClientAuth
6-
import json
72

83
class Client(object):
9-
_VALID_VERSIONS = ['v1']
4+
BASE_URL = 'https://api.typeform.com/'
5+
_VALID_VERSIONS = ['v1', ]
106

11-
def __init__(self, api_key=None, access_token=None, version=None):
12-
self.access_token = access_token
7+
def __init__(self, api_key, version=None):
138
self.api_key = api_key
149
if version not in self._VALID_VERSIONS:
1510
self.version = self._VALID_VERSIONS[0]
16-
if api_key:
17-
self.auth = ClientAuth(api_key=api_key)
18-
self.base_url = 'https://api.typeform.com/'+self._VALID_VERSIONS[0]
19-
elif access_token:
20-
self.auth = ClientAuth(access_token=access_token)
21-
self.base_url = 'https://api.typeform.com'
22-
else:
23-
raise exception.CredentialRequired("You must provide either access_token or api_key")
2411

25-
def _get(self, endpoint, data=None):
26-
return self._request('GET', endpoint, data=data)
27-
28-
def _put(self, endpoint, data=None):
29-
return self._request('PUT', endpoint, data=data)
30-
31-
def _delete(self, endpoint, data=None):
32-
return self._request('DELETE', endpoint, data=data)
33-
34-
def _request(self, method, endpoint, data=None):
35-
url = '{0}/{1}'.format(self.base_url, endpoint)
36-
response = requests.request(method, url, auth=self.auth, data=json.dumps(data))
37-
return self._parse(response)
38-
39-
def _parse(self, response):
40-
if not response.ok:
41-
try:
42-
data = response.json()
43-
if 'description' in data and 'code' in data:
44-
message = data['description']
45-
code = data['code']
46-
except:
47-
code = response.status_code
48-
message = ""
49-
try:
50-
error_enum = ErrorEnum(response.status_code)
51-
except Exception:
52-
raise exception.UnexpectedError('Error:{0}{1}.Message{2}'.format(code, response.status_code, message))
53-
if error_enum == ErrorEnum.Forbidden:
54-
raise exception.Forbidden(message)
55-
if error_enum == ErrorEnum.Not_Found:
56-
raise exception.Not_Found(message)
57-
if error_enum == ErrorEnum.Payment_Required:
58-
raise exception.Payment_Required(message)
59-
if error_enum == ErrorEnum.Internal_Server_Error:
60-
raise exception.Internal_Server_Error(message)
61-
if error_enum == ErrorEnum.Service_Unavailable:
62-
raise exception.Service_Unavailable(message)
63-
if error_enum == ErrorEnum.Bad_Request:
64-
raise exception.Bad_Request(message)
65-
if error_enum == ErrorEnum.Unauthorized:
66-
raise exception.Unauthorized(message)
12+
def _get(self, endpoint, params=None):
13+
return self._request('GET', endpoint, params)
14+
15+
def _request(self, method, endpoint, params=None, data=None):
16+
url = '{0}{1}/{2}'.format(self.BASE_URL, self.version, endpoint)
17+
print(url)
18+
response = requests.request(method, url, params=params, json=data)
19+
r = response.json()
20+
if response.status_code in [403, 404]:
21+
if 'message' in r:
22+
raise Exception(r['message'])
6723
else:
68-
raise exception.BaseError('Error: {0}{1}. Message {2}'.format(code, response.status_code, message))
69-
return data
70-
else:
71-
return response
24+
if 'code' in r:
25+
raise Exception(r['description'])
26+
raise Exception('Unexpected error.')
27+
return r
7228

7329
def get_form_uid(self, url_form):
7430
"""Returns addresses registered by the user.
7531
Args:
76-
url_form: String, Url from the form (the method needs the uid or form)
32+
url_form:
7733
Returns:
7834
A string.
7935
"""
@@ -84,7 +40,7 @@ def get_form_uid(self, url_form):
8440
def get_form_information(self, uid=None, url=None):
8541
"""Returns addresses registered by the user.
8642
Args:
87-
uid: Unique ID for the form
43+
typeform_uid:
8844
Returns:
8945
A dict.
9046
"""
@@ -93,87 +49,62 @@ def get_form_information(self, uid=None, url=None):
9349
raise Exception('You must provide either an UID or Form URL.')
9450
else:
9551
uid = self.get_form_uid(url)
96-
return self._get('forms/{}'.format(uid)).json()
52+
params = {'key': self.api_key}
53+
return self._get('form/{}'.format(uid), params=params)
54+
55+
def get_form_stats(self, uid=None, url=None, form=None):
56+
"""Returns stats of form.
57+
Args:
58+
uid:
59+
url:
60+
Returns:
61+
A dict.
62+
"""
63+
if form is not None:
64+
return form['stats']
65+
return self.get_form_information(uid=uid, url=url)['stats']
9766

9867
def get_form_questions(self, uid=None, url=None, form=None):
9968
"""Returns questions of form.
10069
Args:
101-
uid: Unique ID for the form
102-
url: String, Url from the form (the method needs the uid or form)
70+
uid:
71+
url:
10372
Returns:
10473
A dict.
10574
"""
10675
if form is not None:
107-
return form['fields']
108-
return self.get_form_information(uid=uid, url=url)['fields']
76+
return form['questions']
77+
return self.get_form_information(uid=uid, url=url)['questions']
10978

110-
def get_form_metadata(self, since, until, uid=None, url=None, form=None):
111-
"""Returns metadata of form (include answers).
79+
def get_form_metadata(self, uid=None, url=None, form=None):
80+
"""Returns metadata of form.
11281
Args:
113-
uid: String, ID from the form
114-
url: String, Url from the form (the method needs the uid or form)
115-
form: String, A form
116-
since: String, The since parameter is a string that uses ISO 8601 format,
117-
Coordinated Universal Time (UTC), with "T" as a delimiter between the date and time.
118-
July 10, 2017 at 12:00 a.m. UTC is expressed as 2017-07-10T00:00:00.
119-
If you want to retrieve responses for yesterday, 2017-07-09, the value for your since query parameter
120-
would be 2017-07-09T00:00:00
121-
until: String, The until parameter is a string that uses ISO 8601 format,
122-
Coordinated Universal Time (UTC), with "T" as a delimiter between the date and time.
123-
July 10, 2017 at 12:00 a.m. UTC is expressed as 2017-07-10T00:00:00.
124-
If you want to retrieve responses for yesterday, 2017-07-09, the value for your since query parameter
125-
would be 2017-07-09T00:00:00
82+
uid:
83+
url:
12684
Returns:
12785
A dict.
12886
"""
12987
if form is not None:
13088
return form['responses']
131-
data = {
132-
'since': since,
133-
'until': until,
134-
}
135-
return self._get(endpoint="forms/{0}/responses".format(uid), data=data).json()['items']
89+
return self.get_form_information(uid=uid, url=url)['responses']
13690

91+
def get_form_answers(self, uid=None, url=None, form=None):
92+
"""Returns answers of form.
93+
Args:
94+
uid:
95+
url:
96+
Returns:
97+
A list.
98+
"""
99+
if form is None:
100+
form = self.get_form_information(uid=uid, url=url)
101+
return [answers['answers'] for answers in form['responses']]
137102

138103
def get_forms(self):
139104
"""Returns all forms
140105
Args:
141106
Returns:
142107
A dict.
143108
"""
144-
return self._get(endpoint='forms').json()
145-
146-
def create_webhook(self, url_webhook, tag_webhook, uid):
147-
"""
148-
:param url_webhook: String URL webhook request
149-
:param tag_webhook: String
150-
:param uid: String, Unique ID for the form
151-
:return: dict
152-
"""
153-
if self.access_token is not None:
154-
data = {'url':url_webhook, 'enabled':True}
155-
return self._put(endpoint='forms/{1}/webhooks/{0}'.format(tag_webhook, uid), data=data).json()
156-
else:
157-
raise exception.TokenRequired("You need an access token for this method")
158-
159-
def view_webhook(self, tag_webhook, uid):
160-
"""
161-
:param tag_webhook: String
162-
:param uid: String, Unique ID for the form
163-
:return:
164-
"""
165-
if self.access_token is not None:
166-
return self._get(endpoint='forms/{1}/webhooks/{0}'.format(tag_webhook, uid)).json()
167-
else:
168-
raise exception.TokenRequired("You need an access token for this method")
169-
170-
def delete_webhook(self, tag_webhook, uid):
171-
"""
172-
:param tag_webhook: String
173-
:param uid: String, Unique ID for the form
174-
:return:
175-
"""
176-
if self.access_token is not None:
177-
return self._delete(endpoint='forms/{1}/webhooks/{0}'.format(tag_webhook, uid)).ok
178-
else:
179-
raise exception.TokenRequired("You need an access token for this method")
109+
params = {'key': self.api_key}
110+
return self._get('forms?key={0}'.format(self.api_key), params=params)

typeform/clientauth.py

Lines changed: 0 additions & 21 deletions
This file was deleted.

typeform/enumerator.py

Lines changed: 0 additions & 10 deletions
This file was deleted.

typeform/exception.py

Lines changed: 0 additions & 32 deletions
This file was deleted.

0 commit comments

Comments
 (0)