From 10b5b106f446ec5e4e13085dfec2863d5a701b26 Mon Sep 17 00:00:00 2001
From: Thomas Kluyver <thomas.kluyver@xfel.eu>
Date: Fri, 20 Sep 2024 12:06:29 +0100
Subject: [PATCH] Allow setting a global default for caldb_root

---
 src/cal_tools/calcat_interface2.py |  3 +++
 src/cal_tools/restful_config.py    | 27 +++++++++------------------
 2 files changed, 12 insertions(+), 18 deletions(-)

diff --git a/src/cal_tools/calcat_interface2.py b/src/cal_tools/calcat_interface2.py
index 464ff85c5..4a0e3ea12 100644
--- a/src/cal_tools/calcat_interface2.py
+++ b/src/cal_tools/calcat_interface2.py
@@ -214,6 +214,9 @@ def setup_client(
 
 _default_caldb_root = None
 
+def set_default_caldb_root(p: Path):
+    global _default_caldb_root
+    _default_caldb_root = p
 
 def _get_default_caldb_root():
     global _default_caldb_root
diff --git a/src/cal_tools/restful_config.py b/src/cal_tools/restful_config.py
index 5a6d2e9e5..60abba6a4 100644
--- a/src/cal_tools/restful_config.py
+++ b/src/cal_tools/restful_config.py
@@ -50,25 +50,16 @@ def extra_calibration_client():
     from cal_tools import calcat_interface2
 
     calcat_config = restful_config.get('calcat')
+    user_id = user_secret = None
     if calcat_config['use-oauth2']:
-        from oauth2_xfel_client import Oauth2ClientBackend
-        oauth_client = Oauth2ClientBackend(
-            client_id=calcat_config['user-id'],
-            client_secret=calcat_config['user-secret'],
-            token_url=calcat_config['token-url'],
-            scope='',
-        )
-    else:
-        oauth_client = None
+        user_id, user_secret = calcat_config['user-id'], calcat_config['user-secret']
 
-    if calcat_config['caldb-root']:
-        calcat_interface2._default_caldb_root = Path(calcat_config['caldb-root'])
-
-    client = calcat_interface2.CalCatAPIClient(
-        base_api_url=calcat_config['base-api-url'],
-        oauth_client=oauth_client,
+    calcat_interface2.setup_client(
+        calcat_config['base-api-url'],
+        client_id=user_id,
+        client_secret=user_secret,
         user_email=calcat_config['user-email'],
     )
-
-    calcat_interface2.global_client = client
-    return client
+    if calcat_config['caldb-root']:
+        calcat_interface2.set_default_caldb_root(Path(calcat_config['caldb-root']))
+    return calcat_interface2.get_client()
-- 
GitLab