diff options
author | Roberto Bertó <roberto.berto@gmail.com> | 2024-03-10 13:45:37 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-10 13:45:37 -0300 |
commit | c7f43864e8d31fde53105e991f88761947035124 (patch) | |
tree | 81a1da5d5b10aee65d8df582bda99bf4cf417c35 | |
parent | bf3d1770decc1810fdb69d4d32b2a9e89f6073b7 (diff) | |
parent | 975aca44486295b452b125e4119dcfcaa92845ed (diff) | |
download | pyvyos-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.py | 59 |
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 |