1
1
import requests
2
+ from meilisearch .meilisearch_api_error import MeiliSearchApiError
3
+ from meilisearch .meilisearch_communication_error import MeiliSearchCommunicationError
2
4
3
5
class HttpRequests :
4
6
@@ -14,41 +16,52 @@ def __init__(self, config):
14
16
15
17
16
18
def get (self , path ):
17
- request = requests .get (
18
- self .config .url + '/' + path ,
19
- headers = self .headers ,
20
- )
21
- return self .__validate (request )
19
+ try :
20
+ request = requests .get (
21
+ self .config .url + '/' + path ,
22
+ headers = self .headers ,
23
+ )
24
+ return self .__validate (request )
25
+ except requests .exceptions .ConnectionError as err :
26
+ raise MeiliSearchCommunicationError (err ) from None
22
27
23
28
def post (self , path , body = None ):
24
29
if body is None :
25
30
body = {}
26
- request = requests .post (
27
- self .config .url + '/' + path ,
28
- headers = self .headers ,
29
- json = body
30
- )
31
- return self .__validate (request )
32
-
31
+ try :
32
+ request = requests .post (
33
+ self .config .url + '/' + path ,
34
+ headers = self .headers ,
35
+ json = body
36
+ )
37
+ return self .__validate (request )
38
+ except requests .exceptions .ConnectionError as err :
39
+ raise MeiliSearchCommunicationError (err ) from None
33
40
def put (self , path , body = None ):
34
41
if body is None :
35
42
body = {}
36
- request = requests .put (
37
- self .config .url + '/' + path ,
38
- headers = self .headers ,
39
- json = body
40
- )
41
- return self .__validate (request )
43
+ try :
44
+ request = requests .put (
45
+ self .config .url + '/' + path ,
46
+ headers = self .headers ,
47
+ json = body
48
+ )
49
+ return self .__validate (request )
50
+ except requests .exceptions .ConnectionError as err :
51
+ raise MeiliSearchCommunicationError (err ) from None
42
52
43
53
def delete (self , path , body = None ):
44
54
if body is None :
45
55
body = {}
46
- request = requests .delete (
47
- self .config .url + '/' + path ,
48
- headers = self .headers ,
49
- json = body
50
- )
51
- return self .__validate (request )
56
+ try :
57
+ request = requests .delete (
58
+ self .config .url + '/' + path ,
59
+ headers = self .headers ,
60
+ json = body
61
+ )
62
+ return self .__validate (request )
63
+ except requests .exceptions .ConnectionError as err :
64
+ raise MeiliSearchCommunicationError (err ) from None
52
65
53
66
@staticmethod
54
67
def __to_json (request ):
@@ -61,7 +74,5 @@ def __validate(request):
61
74
try :
62
75
request .raise_for_status ()
63
76
return HttpRequests .__to_json (request )
64
- except requests .exceptions .HTTPError as err :
65
- raise Exception (err )
66
- except requests .exceptions .ConnectionError as err :
67
- raise Exception (err )
77
+ except requests .exceptions .HTTPError :
78
+ raise MeiliSearchApiError (request .status_code , request .text ) from None
0 commit comments