3
3
import json
4
4
import logging
5
5
import pprint
6
- from . import exceptions
6
+
7
+ # Custom Error classes
8
+ class ConnectionError (Exception ):
9
+ pass
10
+ class BadRequestType (Exception ):
11
+ pass
12
+ class NotPaginated (Exception ):
13
+ pass
14
+ class AspaceBadRequest (Exception ):
15
+ pass
16
+ class AspaceForbidden (Exception ):
17
+ pass
18
+ class AspaceNotFound (Exception ):
19
+ pass
20
+ class AspaceError (Exception ):
21
+ pass
7
22
8
23
def logResponse (response ):
9
24
logging .error (json .dumps (response .json (), indent = 4 ))
@@ -12,23 +27,23 @@ def checkStatusCodes(response):
12
27
if response .status_code == 403 :
13
28
logging .error ("Forbidden -- check your credentials." )
14
29
logResponse (response )
15
- raise exceptions . AspaceForbidden
30
+ raise AspaceForbidden
16
31
elif response .status_code == 400 :
17
32
logging .error ("Bad Request -- I'm sorry Dave, I'm afraid I can't do that." )
18
33
logResponse (response )
19
- raise exceptions . AspaceBadRequest
34
+ raise AspaceBadRequest
20
35
elif response .status_code == 404 :
21
36
logging .error ("Not Found." )
22
- raise exceptions . AspaceNotFound
37
+ raise AspaceNotFound
23
38
elif response .status_code == 500 :
24
39
logging .error ("500 Internal Server Error" )
25
- raise exceptions . AspaceError
40
+ raise AspaceError
26
41
elif response .status_code == 200 :
27
42
return response .json ()
28
43
else :
29
44
logging .error (str (response .status_code ))
30
45
logResponse (response )
31
- raise exceptions . AspaceError
46
+ raise AspaceError
32
47
33
48
def _unionRequestData (defaultData , kwargs ):
34
49
"""Merge default request data and any data passed to the method into one
@@ -87,11 +102,11 @@ def _request(self, path, type, data):
87
102
elif type == "get" :
88
103
r = self .session .get (self ._getHost () + path , data = data )
89
104
else :
90
- raise exceptions . BadRequestType
105
+ raise BadRequestType
91
106
92
107
except requests .exceptions .ConnectionError :
93
108
logging .error ('Unable to connect to ArchivesSpace. Check the host information.' )
94
- raise exceptions . ConnectionError
109
+ raise ConnectionError
95
110
else :
96
111
jsonResponse = checkStatusCodes (r )
97
112
return jsonResponse
@@ -161,7 +176,7 @@ def pagedRequestGet(self, path, **kwargs):
161
176
try :
162
177
fullSet = response ['results' ]
163
178
except Exception :
164
- raise exceptions . NotPaginated
179
+ raise NotPaginated
165
180
# Then determine how many pages there are
166
181
numPages = response ['last_page' ]
167
182
# Loop through all the pages and append them to a single big data structure
@@ -179,7 +194,7 @@ def allIdsRequestGet(self, path):
179
194
if all (isinstance (item , int ) for item in response ):
180
195
return response
181
196
else :
182
- raise exceptions . NotPaginated
197
+ raise NotPaginated
183
198
184
199
if __name__ == "__main__" :
185
200
import doctest
0 commit comments