From 0a5db5d14c19d7af7acdad5918c39c39eaff0858 Mon Sep 17 00:00:00 2001
From: Daniel Nemergut <dnemergu@nrao.edu>
Date: Fri, 31 May 2024 10:32:08 -0400
Subject: [PATCH] Fixed optional param values coming in from the routes

---
 .../capability/capability/views/capability.py | 38 ++++++++++++-------
 1 file changed, 24 insertions(+), 14 deletions(-)

diff --git a/services/capability/capability/views/capability.py b/services/capability/capability/views/capability.py
index a38f0e9b4..866747c39 100644
--- a/services/capability/capability/views/capability.py
+++ b/services/capability/capability/views/capability.py
@@ -295,11 +295,14 @@ def get_casa_version(request: Request) -> Response:
     :return: Response containing the CASA version and path
         or a 404 response (HTTPNotFound) if one isn't returned
     """
-    casa_version = request.casa_matrix_service.get_version(
-        request.params["version"] if "version" in request.params else None,
-        request.params["capability"] if "capability" in request.params else None,
-        request.params["telescope"] if "telescope" in request.params else None,
-    )
+    params = {
+        "version": request.params["version"] if "version" in request.params else None,
+        "capability": request.params["capability"] if "capability" in request.params else None,
+        "telescope": request.params["telescope"] if "telescope" in request.params else None,
+    }
+    params = {k: v for k, v in params.items() if v is not None}
+
+    casa_version = request.casa_matrix_service.get_version(**params)
 
     if casa_version:
         return Response(status_int=http.HTTPStatus.OK, json_body={"resp": f"{casa_version}"})
@@ -316,9 +319,12 @@ def get_casa_versions(request: Request) -> Response:
     :return: Response containing a list of CASA versions and their paths
         or a 404 response (HTTPNotFound) if none are returned
     """
-    casa_versions = request.casa_matrix_service.get_versions(
-        request.params["capability"] if "capability" in request.params else None
-    )
+    params = {
+        "capability": request.params["capability"] if "capability" in request.params else None,
+    }
+    params = {k: v for k, v in params.items() if v is not None}
+
+    casa_versions = request.casa_matrix_service.get_versions(**params)
 
     if casa_versions:
         return Response(status_int=http.HTTPStatus.OK, json_body={"resp": f"{casa_versions}"})
@@ -353,9 +359,11 @@ def add_casa_version(request: Request) -> Response:
         or a 404 response (HTTPNotFound) if one isn't added
     """
     added = request.casa_matrix_service.add_version(
-        request.params["version"],
-        request.params["capabilities"],
-        request.params["is_cluster_compatible"] if "is_cluster_compatible" in request.params else None,
+        version=request.params["version"],
+        capabilities=request.params["capabilities"],
+        is_cluster_compatible=request.params["is_cluster_compatible"]
+        if "is_cluster_compatible" in request.params
+        else True,
     )
 
     if added:
@@ -374,9 +382,11 @@ def update_casa_version(request: Request) -> Response:
         or a 404 response (HTTPNotFound) if one isn't updated
     """
     updated = request.casa_matrix_service.update_version(
-        request.params["version"],
-        request.params["capabilities"],
-        request.params["is_cluster_compatible"] if "is_cluster_compatible" in request.params else None,
+        version=request.params["version"],
+        capabilities=request.params["capabilities"],
+        is_cluster_compatible=request.params["is_cluster_compatible"]
+        if "is_cluster_compatible" in request.params
+        else True,
     )
 
     if updated:
-- 
GitLab