summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Bertó <roberto.berto@gmail.com>2024-03-10 13:45:37 -0300
committerGitHub <noreply@github.com>2024-03-10 13:45:37 -0300
commitc7f43864e8d31fde53105e991f88761947035124 (patch)
tree81a1da5d5b10aee65d8df582bda99bf4cf417c35
parentbf3d1770decc1810fdb69d4d32b2a9e89f6073b7 (diff)
parent975aca44486295b452b125e4119dcfcaa92845ed (diff)
downloadpyvyos-c7f43864e8d31fde53105e991f88761947035124.tar.gz
pyvyos-c7f43864e8d31fde53105e991f88761947035124.zip
Merge pull request #3 from xTITUSMAXIMUSX/main
Adding multi command support in a single payload
-rw-r--r--pyvyos/device.py59
1 files changed, 48 insertions, 11 deletions
diff --git a/pyvyos/device.py b/pyvyos/device.py
index cc87a32..5df85df 100644
--- a/pyvyos/device.py
+++ b/pyvyos/device.py
@@ -104,24 +104,61 @@ class VyDevice:
Returns:
dict: The payload for the API request.
"""
- data = {
- 'op': op,
- 'path': path
+ if not path:
+ data = {
+ 'op': op,
+ 'path': path
+ }
+
+ if file is not None:
+ data['file'] = file
+
+ if url is not None:
+ data['url'] = url
+
+ if name is not None:
+ data['name'] = name
+
+ payload = {
+ 'data': json.dumps(data),
+ 'key': self.apikey
+ }
+
+ return payload
+
+ elif isinstance(path, list) and len(path) == 1:
+ # If path is a list and contains only one element, use it directly
+ data = {'op': op, 'path': path[0]}
+ else:
+ data = []
+ current_command = {'op': op, 'path': []}
+ for p in path:
+ if isinstance(p, list):
+ # If the current item is a list, merge it into the current command
+ if current_command['path']:
+ data.append(current_command)
+ current_command = {'op': op, 'path': p}
+ else:
+ # Otherwise, add the item to the current command's path
+ current_command['path'].append(p)
+
+ # Add the last command to data
+ if current_command['path']:
+ data.append(current_command)
+
+ payload = {
+ 'data': json.dumps(data),
+ 'key': self.apikey
}
if file is not None:
data['file'] = file
-
+
if url is not None:
- data['url'] = url
-
+ payload['url'] = url
+
if name is not None:
data['name'] = name
-
- payload = {
- 'data': json.dumps(data),
- 'key': self.apikey
- }
return payload