-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathcontroller.py
More file actions
35 lines (30 loc) · 1.07 KB
/
controller.py
File metadata and controls
35 lines (30 loc) · 1.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import requests
from requests.utils import guess_json_utf
from contentstack.error_messages import ErrorMessages
class RequestError(Exception):
def __int__(self, error):
self.error = error['error']
self.error_code = error['error_code']
self.error_message = error['error_message']
pass
def get_request(session, url, headers, timeout):
try:
response = session.get(url, verify=True, headers=headers, timeout=timeout)
if response.encoding is None:
response.encoding = 'utf-8'
except requests.exceptions.RequestException as e:
error = {
'error': ErrorMessages.CONNECTION_FAILED.format(url=url, error=str(e)),
'error_code': '400',
'error_message': {str(e)}
}
raise RequestError(error)
except Exception as e:
error = {
'error': ErrorMessages.OPERATION_FAILED.format(url=url, error=str(e)),
'error_code': '400',
'error_message': {str(e)}
}
raise RequestError(error)
else:
return response.json()