diff options
Diffstat (limited to 'cli/objects/folder.py')
-rw-r--r-- | cli/objects/folder.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/cli/objects/folder.py b/cli/objects/folder.py new file mode 100644 index 0000000..4b9485b --- /dev/null +++ b/cli/objects/folder.py @@ -0,0 +1,54 @@ +# Copyright (C) 2020-2024 Soleta Networks <opengnsys@soleta.eu> +# +# This program is free software: you can redistribute it and/or modify it under +# the terms of the GNU Affero General Public License as published by the +# Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +import sys +import argparse + +class OgFolder(): + + @staticmethod + def add_folder(rest, args): + parser = argparse.ArgumentParser(prog='ogcli add folder') + + group = parser.add_mutually_exclusive_group(required=True) + group.add_argument('--center-id', + nargs='?', + type=int, + required=True, + help='provide the id of the center that will contain the folder') + group.add_argument('--room-id', + nargs='?', + type=int, + required=True, + help='provide the id of the room that will contain the folder') + + parser.add_argument('--name', + nargs='?', + required=True, + help='name of the folder to be added') + parsed_args = parser.parse_args(args) + + payload = { + 'name': parsed_args.name, + } + if parsed_args.room_id: + payload['room'] = parsed_args.room_id + if parsed_args.center_id: + payload['center'] = parsed_args.center_id + rest.post('/folder/add', payload=payload) + + @staticmethod + def delete_folder(rest, args): + parser = argparse.ArgumentParser(prog='ogcli delete folder') + parser.add_argument('--id', + nargs='?', + type=int, + required=True, + help='folder id in database') + parsed_args = parser.parse_args(args) + payload = {'id': parsed_args.id} + rest.post('/folder/delete', payload=payload) |