mirror of https://github.com/MISP/PyMISP
parent
a334055749
commit
a7fc1ceb20
|
@ -1,3 +1,3 @@
|
|||
__version__ = '2.1.1'
|
||||
__version__ = '2.2'
|
||||
|
||||
from .api import PyMISP, PyMISPError, NewEventError, NewAttributeError, MissingDependency, NoURL, NoKey
|
||||
|
|
|
@ -142,6 +142,23 @@ class PyMISP(object):
|
|||
'content-type': 'application/' + out})
|
||||
return session
|
||||
|
||||
def flatten_error_messages(self, response):
|
||||
messages = []
|
||||
if response.get('error'):
|
||||
if isinstance(response['error'], list):
|
||||
for e in response['errors']:
|
||||
messages.append(e['error']['value'][0])
|
||||
else:
|
||||
messages.append(['error'])
|
||||
elif response.get('errors'):
|
||||
if isinstance(response['errors'], dict):
|
||||
for where, errors in response['errors'].items():
|
||||
for e in errors:
|
||||
for type_e, msgs in e.items():
|
||||
for m in msgs:
|
||||
messages.append('Error in {}: {}'.format(where, m))
|
||||
return messages
|
||||
|
||||
def _check_response(self, response):
|
||||
if response.status_code >= 500:
|
||||
response.raise_for_status()
|
||||
|
@ -151,9 +168,22 @@ class PyMISP(object):
|
|||
if self.debug:
|
||||
print(response.text)
|
||||
raise PyMISPError('Unknown error: {}'.format(response.text))
|
||||
|
||||
errors = []
|
||||
if to_return.get('error'):
|
||||
if not isinstance(to_return['error'], list):
|
||||
errors.append(to_return['error'])
|
||||
else:
|
||||
errors += to_return['error']
|
||||
|
||||
if 400 <= response.status_code < 500:
|
||||
if to_return.get('error') is None:
|
||||
to_return['error'] = to_return.get('message')
|
||||
if to_return.get('error') is None and to_return.get('message'):
|
||||
errors.append(to_return['message'])
|
||||
else:
|
||||
errors.append(basestring(response.status_code))
|
||||
errors += self.flatten_error_messages(to_return)
|
||||
if errors:
|
||||
to_return['errors'] = errors
|
||||
if self.debug:
|
||||
print(json.dumps(to_return, indent=4))
|
||||
return to_return
|
||||
|
|
Loading…
Reference in New Issue