improve errors
This commit is contained in:
@@ -26,6 +26,19 @@ class EmailAlreadyExistsError(KonvivaError):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def _raise_konviva_errors_if_any(data: dict = {}) -> None:
|
||||||
|
"""Raises specific exceptions if Konviva API returned errors in the response body"""
|
||||||
|
errors = glom(data, 'errors', default=None)
|
||||||
|
if not errors:
|
||||||
|
return
|
||||||
|
|
||||||
|
error_str = errors[0] if isinstance(errors, list) else errors
|
||||||
|
if error_str == 'Login já existente':
|
||||||
|
raise EmailAlreadyExistsError(error_str)
|
||||||
|
|
||||||
|
raise KonvivaError(error_str)
|
||||||
|
|
||||||
|
|
||||||
def create_user(
|
def create_user(
|
||||||
id: str,
|
id: str,
|
||||||
name: str,
|
name: str,
|
||||||
@@ -59,15 +72,7 @@ def create_user(
|
|||||||
)
|
)
|
||||||
r.raise_for_status()
|
r.raise_for_status()
|
||||||
data = r.json()
|
data = r.json()
|
||||||
|
_raise_konviva_errors_if_any(data)
|
||||||
# Because Konviva does not return the proper HTTP status code
|
|
||||||
if err := glom(data, 'errors', default=None):
|
|
||||||
err = err[0] if isinstance(err, list) else err
|
|
||||||
|
|
||||||
if err == 'Login já existente':
|
|
||||||
raise EmailAlreadyExistsError(err)
|
|
||||||
else:
|
|
||||||
raise KonvivaError(err)
|
|
||||||
|
|
||||||
return int(data.get('IDUsuario'))
|
return int(data.get('IDUsuario'))
|
||||||
|
|
||||||
@@ -88,10 +93,7 @@ def update_user(id: str, **kwargs) -> dict:
|
|||||||
)
|
)
|
||||||
r.raise_for_status()
|
r.raise_for_status()
|
||||||
data = r.json()
|
data = r.json()
|
||||||
|
_raise_konviva_errors_if_any(data)
|
||||||
if err := glom(data, 'errors', default=None):
|
|
||||||
err = err[0] if isinstance(err, list) else err
|
|
||||||
raise KonvivaError(err)
|
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
@@ -124,10 +126,7 @@ def _post_enrollment(json: dict) -> dict:
|
|||||||
)
|
)
|
||||||
r.raise_for_status()
|
r.raise_for_status()
|
||||||
data = r.json()
|
data = r.json()
|
||||||
|
_raise_konviva_errors_if_any(data)
|
||||||
if err := glom(data, 'errors', default=None):
|
|
||||||
err = err[0] if isinstance(err, list) else err
|
|
||||||
raise KonvivaError(err)
|
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user