From 75204dcd93a06699669e51f6e34487aacbcde6a7 Mon Sep 17 00:00:00 2001 From: Jonas Gunz Date: Fri, 11 Dec 2020 01:08:37 +0100 Subject: error handling, doc --- phpipam/resources.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'phpipam/resources.py') diff --git a/phpipam/resources.py b/phpipam/resources.py index 597560a..5879b14 100755 --- a/phpipam/resources.py +++ b/phpipam/resources.py @@ -29,6 +29,9 @@ class invalidResourceException(Exception): class invalidResourceOperationException(Exception): pass +class invalidResourceOperationArgumentException(Exception): + pass + class phpipamResourceFunction: def __init__(self, backend, resource, function): if not function in resource_types[resource]: @@ -37,14 +40,18 @@ class phpipamResourceFunction: self._backend = backend self._resource = resource self._function = resource_types[resource][function] + self._name = function def __call__(self, **kwargs): if 'data' in kwargs: data = kwargs['data'] else: data = {} + try: + return self._backend.request( self._function['method'], self._function['request'].format(**kwargs), data=data ) + except KeyError as e: + raise invalidResourceOperationArgumentException( f'{self._resource}.{self._name}: Missing arguments: {e.args}' ) - return self._backend.request( self._function['method'], self._function['request'].format(**kwargs), data=data ) class phpipamResource: def __init__(self, backend, resource): -- cgit v1.2.3