aboutsummaryrefslogtreecommitdiff
path: root/phpipam/resources.py
diff options
context:
space:
mode:
authorGravatar Jonas Gunz <himself@jonasgunz.de> 2020-12-11 01:08:37 +0100
committerGravatar Jonas Gunz <himself@jonasgunz.de> 2020-12-11 01:08:37 +0100
commit75204dcd93a06699669e51f6e34487aacbcde6a7 (patch)
tree9baca3c9b86c3d8563ef67fd87245447707e9243 /phpipam/resources.py
parent17bd5b60a6d1445d208c1486c5b937c7f7881154 (diff)
downloadpython-phpipam-75204dcd93a06699669e51f6e34487aacbcde6a7.tar.gz
error handling, doc
Diffstat (limited to 'phpipam/resources.py')
-rwxr-xr-xphpipam/resources.py9
1 files changed, 8 insertions, 1 deletions
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):