From 8e2323e6e8e18e5e4b36973913497c4247db4898 Mon Sep 17 00:00:00 2001
From: Bjarke Madsen <bjarke.madsen@geant.org>
Date: Tue, 2 Mar 2021 16:07:15 +0100
Subject: [PATCH] Move find_folder to the grafana folder module

---
 brian_dashboard_manager/grafana/folder.py | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/brian_dashboard_manager/grafana/folder.py b/brian_dashboard_manager/grafana/folder.py
index 181ea8e..fe3700f 100644
--- a/brian_dashboard_manager/grafana/folder.py
+++ b/brian_dashboard_manager/grafana/folder.py
@@ -6,6 +6,20 @@ from brian_dashboard_manager.grafana.utils.request import TokenRequest
 logger = logging.getLogger(__name__)
 
 
+def find_folder(token_request, title):
+    folders = get_folders(token_request)
+    try:
+        folder = next(
+            f for f in folders if f['title'].lower() == title.lower())
+    except StopIteration:
+        folder = None
+
+    if not folder:
+        logger.info(f'Created folder: {title}')
+        folder = create_folder(token_request, title)
+    return folder
+
+
 def get_folders(request: TokenRequest):
     return request.get('api/folders')
 
@@ -14,9 +28,7 @@ def create_folder(request: TokenRequest, title):
     try:
         data = {'title': title, 'uid': title.replace(' ', '_')}
         r = request.post('api/folders', json=data)
-    except HTTPError as e:
-        message = e.content.get("message", "")
-        logger.exception(
-            f'Error when creating folder {title} ({message})')
+    except HTTPError:
+        logger.exception(f'Error when creating folder {title}')
         return None
     return r
-- 
GitLab