From f612a4bb40b59cd0fb9599acb4bfd8e9c2e6dee5 Mon Sep 17 00:00:00 2001
From: "i.nueske" <i.nueske@indiscale.com>
Date: Fri, 18 Oct 2024 17:31:59 +0200
Subject: [PATCH] MNT: Added error messages to the retrieve methods in
 linkahead_admin.py

 - Addresses https://gitlab.indiscale.com/caosdb/src/caosdb-pylib/-/issues/200
---
 src/linkahead/utils/linkahead_admin.py | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

diff --git a/src/linkahead/utils/linkahead_admin.py b/src/linkahead/utils/linkahead_admin.py
index f7e3b8b6..0ec9afe8 100755
--- a/src/linkahead/utils/linkahead_admin.py
+++ b/src/linkahead/utils/linkahead_admin.py
@@ -33,7 +33,7 @@ from argparse import ArgumentParser, RawDescriptionHelpFormatter
 
 import linkahead as db
 from linkahead import administration as admin
-from linkahead.exceptions import HTTPClientError
+from linkahead.exceptions import HTTPClientError, HTTPResourceNotFoundError
 
 __all__ = []
 __version__ = 0.3
@@ -50,7 +50,10 @@ def do_create_role(args):
 
 
 def do_retrieve_role(args):
-    print(admin._retrieve_role(name=args.role_name))
+    try:
+        print(admin._retrieve_role(name=args.user_name))
+    except HTTPResourceNotFoundError:
+        print(f"Error: User '{args.user_name}' does not exist.")
 
 
 def do_delete_role(args):
@@ -185,7 +188,10 @@ def do_set_user_email(args):
 
 
 def do_retrieve_user(args):
-    print(admin._retrieve_user(name=args.user_name))
+    try:
+        print(admin._retrieve_user(name=args.user_name))
+    except HTTPResourceNotFoundError:
+        print(f"Error: User '{args.user_name}' does not exist.")
 
 
 def do_delete_user(args):
@@ -193,11 +199,17 @@ def do_delete_user(args):
 
 
 def do_retrieve_user_roles(args):
-    print(admin._get_roles(username=args.user_name))
+    try:
+        print(admin._get_roles(username=args.user_name))
+    except HTTPResourceNotFoundError:
+        print(f"Error: User '{args.user_name}' does not exist.")
 
 
 def do_retrieve_role_permissions(args):
-    print(admin._get_permissions(role=args.role_name))
+    try:
+        print(admin._get_permissions(role=args.role_name))
+    except HTTPResourceNotFoundError:
+        print(f"Error: Role '{args.role_name}' does not exist.")
 
 
 def do_grant_role_permissions(args):
-- 
GitLab