diff --git a/brian_dashboard_manager/grafana/folder.py b/brian_dashboard_manager/grafana/folder.py index fe3700f7fdde128088bd469ebcb9a08a9aaba50d..64e6ad46b645d9693a3ea0264e8999fc2c1688b4 100644 --- a/brian_dashboard_manager/grafana/folder.py +++ b/brian_dashboard_manager/grafana/folder.py @@ -6,17 +6,30 @@ from brian_dashboard_manager.grafana.utils.request import TokenRequest logger = logging.getLogger(__name__) -def find_folder(token_request, title): - folders = get_folders(token_request) +def delete_folder(request: TokenRequest, title, uid=None): + if uid: + r = request.delete(f'api/folders/{uid}') + return r is not None + else: + folder = find_folder(request, title, False) + if folder is None: + return True + r = request.delete(f'api/folders/{folder.get("uid")}') + logger.info(f'Deleted folder: {title}') + return r is not None + + +def find_folder(request: TokenRequest, title, create=True): + folders = get_folders(request) try: folder = next( f for f in folders if f['title'].lower() == title.lower()) except StopIteration: folder = None - if not folder: + if not folder and create: logger.info(f'Created folder: {title}') - folder = create_folder(token_request, title) + folder = create_folder(request, title) return folder