77
88import logging
99import platform
10- import json
11- from json import JSONDecodeError
1210import requests
1311from requests .adapters import HTTPAdapter
14- from requests .exceptions import HTTPError , Timeout
1512import contentstack
1613
1714log = logging .getLogger (__name__ )
@@ -42,6 +39,16 @@ def user_agents():
4239 return {'User-Agent' : str (header ), "X-User-Agent" : package }
4340
4441
42+ def get_api_data (response ):
43+ try :
44+ response .raise_for_status ()
45+ except requests .exceptions .HTTPError as error :
46+ print (f"Error: { error } " )
47+ return None
48+ else :
49+ return response .json ()
50+
51+
4552class HTTPSConnection : # R0903: Too few public methods
4653 """Make Https Request to fetch the result as per requested url"""
4754
@@ -66,25 +73,26 @@ def get(self, url):
6673 session = requests .Session ()
6774 adapter = HTTPAdapter (max_retries = self .retry_strategy )
6875 session .mount ('https://' , adapter )
69- response = session .get (
70- url , verify = True , headers = self .headers , timeout = self .timeout )
76+ response = session .get (url , verify = True , headers = self .headers , timeout = self .timeout )
77+ response .encoding = "utf-8"
78+ # response.raise_for_status()
7179 session .close ()
72- if response . encoding is None :
73- response . encoding = 'utf-8'
74- elif response is not None :
75- return response . json ( )
76- else :
77- return { "error" : " error details not found" , "error_code" : 422 ,
78- "error_message" : "unknown error" }
79- except Timeout as timeout_err :
80- raise TimeoutError (
81- json . dumps ({ "httpStatus" : 408 ,
82- "message" : f'Timeout error $ { timeout_err . strerror } ' })) from timeout_err
83- except ConnectionError as connect_err :
84- raise ConnectionError ( json . dumps ({ "httpStatus" : 503 ,
85- "message" : f'Service error $ { connect_err . strerror } ' })) from connect_err
86- except JSONDecodeError as connection_err :
87- raise TypeError ( json . dumps ({ "httpStatus" : 503 ,
88- "message" : 'Decoding JSON has failed.' })) from connection_err
89- except HTTPError as http_err :
90- raise HTTPError ( 'Http error occurred' ) from http_err
80+ except requests . exceptions . HTTPError as http_error :
81+ print ( f"HTTP error occurred: { http_error } " )
82+ except requests . exceptions . Timeout as timeout_error :
83+ print ( f"Timeout error occurred: { timeout_error } " )
84+ except requests . exceptions . ConnectionError as connection_error :
85+ print ( f"Connection error occurred: { connection_error } " )
86+ except requests . exceptions . RequestException as request_exception :
87+ print ( f"An error occurred: { request_exception } " )
88+ else :
89+ print ( "API request successful" )
90+ return response . json ()
91+ finally :
92+ print ( "API request complete" )
93+
94+ # if response.status_code == 200 and response.encoding is None :
95+ # response.encoding = 'utf-8'
96+ # return response.json()
97+ # else :
98+ # return get_api_data(response)
0 commit comments