Loading services/TS29222_CAPIF_Discover_Service_API/service_apis/core/discoveredapis.py +5 −4 Original line number Diff line number Diff line Loading @@ -80,7 +80,7 @@ class DiscoverApisOperations(Resource): if "vend-spec" in param: vend_param = param.split("vend-spec-")[1] attribute_path = query_params[param]["target"].split('/') vend_spec_query_params_n_values[attribute_path[1] + "." + vend_param] = query_params[param]["value"] vend_spec_query_params_n_values[".".join(attribute_path[1:]) + "." + vend_param] = query_params[param]["value"] elif param in ["api_version", "comm_type", "protocol", "aef_id", "data_format"]: my_params.append(json.loads(query_params_name[param].replace("QPV", query_params[param]))) else: Loading @@ -102,9 +102,10 @@ class DiscoverApisOperations(Resource): vendor_specific_fields_path = find_attribute_in_body(discoved_api, '') if vendor_specific_fields_path: if vend_spec_query_params_n_values: vs_filtered_apis = filter_apis_with_vendor_specific_params(discoved_api, vend_spec_query_params_n_values, vendor_specific_fields_path) if vs_filtered_apis: json_docs.append(filter_fields(vs_filtered_apis)) pass_filter = filter_apis_with_vendor_specific_params(discoved_api, vend_spec_query_params_n_values) if pass_filter: json_docs.append(filter_fields(discoved_api)) else: json_docs.append(filter_fields(discoved_api)) else: Loading services/TS29222_CAPIF_Discover_Service_API/service_apis/vendor_specific.py +22 −18 Original line number Diff line number Diff line import re from flask import current_app def find_attribute_in_body(test, path): f_key = [] Loading Loading @@ -70,22 +70,26 @@ def remove_vendor_specific_fields(discoved_api, vendor_specific_fields_path): return discoved_api def filter_apis_with_vendor_specific_params(discoved_api, vend_spec_query_params_n_values, vendor_specific_fields_path): def nested_key_exists(dictionary, keys): """ Checks if a nested path of keys exists in a dictionary. """ _dict = dictionary for key in keys: if isinstance(_dict, dict) and key in _dict: _dict = _dict[key] else: return False, -1 return True, _dict def filter_apis_with_vendor_specific_params(discoved_api, vend_spec_query_params_n_values): pass_filter = True for k, v in vend_spec_query_params_n_values.items(): parts = k.split('.') for path in vendor_specific_fields_path: if parts[0] in path: path_pieces = path.split('.') tmp_body = discoved_api vs_field = path_pieces[-1] for path_piece in path_pieces[:-1]: if path_piece.isnumeric(): path_piece = int(path_piece) v_2 = tmp_body[path_piece] tmp_body = v_2 if parts[1] in tmp_body[vs_field].keys(): if tmp_body[vs_field][parts[1]] != v: return {} else: return {} return discoved_api No newline at end of file exists, value = nested_key_exists(discoved_api, parts) if exists: if v != value: pass_filter = False break return pass_filter No newline at end of file services/run.sh +1 −1 Original line number Diff line number Diff line Loading @@ -21,7 +21,7 @@ help() { docker_version=$(docker compose version --short | cut -d',' -f1) IFS='.' read -ra version_components <<< "$docker_version" if [ "${version_components[0]}" -ge 2 ] && [ "${version_components[1]}" -ge 10 ]; then if [ "${version_components[0]}" -gt 2 ] || { [ "${version_components[0]}" -eq 2 ] && [ "${version_components[1]}" -ge 10 ]; }; then echo "Docker compose version it greater than 2.10" else echo "Docker compose version is not valid. Should be greater than 2.10" Loading Loading
services/TS29222_CAPIF_Discover_Service_API/service_apis/core/discoveredapis.py +5 −4 Original line number Diff line number Diff line Loading @@ -80,7 +80,7 @@ class DiscoverApisOperations(Resource): if "vend-spec" in param: vend_param = param.split("vend-spec-")[1] attribute_path = query_params[param]["target"].split('/') vend_spec_query_params_n_values[attribute_path[1] + "." + vend_param] = query_params[param]["value"] vend_spec_query_params_n_values[".".join(attribute_path[1:]) + "." + vend_param] = query_params[param]["value"] elif param in ["api_version", "comm_type", "protocol", "aef_id", "data_format"]: my_params.append(json.loads(query_params_name[param].replace("QPV", query_params[param]))) else: Loading @@ -102,9 +102,10 @@ class DiscoverApisOperations(Resource): vendor_specific_fields_path = find_attribute_in_body(discoved_api, '') if vendor_specific_fields_path: if vend_spec_query_params_n_values: vs_filtered_apis = filter_apis_with_vendor_specific_params(discoved_api, vend_spec_query_params_n_values, vendor_specific_fields_path) if vs_filtered_apis: json_docs.append(filter_fields(vs_filtered_apis)) pass_filter = filter_apis_with_vendor_specific_params(discoved_api, vend_spec_query_params_n_values) if pass_filter: json_docs.append(filter_fields(discoved_api)) else: json_docs.append(filter_fields(discoved_api)) else: Loading
services/TS29222_CAPIF_Discover_Service_API/service_apis/vendor_specific.py +22 −18 Original line number Diff line number Diff line import re from flask import current_app def find_attribute_in_body(test, path): f_key = [] Loading Loading @@ -70,22 +70,26 @@ def remove_vendor_specific_fields(discoved_api, vendor_specific_fields_path): return discoved_api def filter_apis_with_vendor_specific_params(discoved_api, vend_spec_query_params_n_values, vendor_specific_fields_path): def nested_key_exists(dictionary, keys): """ Checks if a nested path of keys exists in a dictionary. """ _dict = dictionary for key in keys: if isinstance(_dict, dict) and key in _dict: _dict = _dict[key] else: return False, -1 return True, _dict def filter_apis_with_vendor_specific_params(discoved_api, vend_spec_query_params_n_values): pass_filter = True for k, v in vend_spec_query_params_n_values.items(): parts = k.split('.') for path in vendor_specific_fields_path: if parts[0] in path: path_pieces = path.split('.') tmp_body = discoved_api vs_field = path_pieces[-1] for path_piece in path_pieces[:-1]: if path_piece.isnumeric(): path_piece = int(path_piece) v_2 = tmp_body[path_piece] tmp_body = v_2 if parts[1] in tmp_body[vs_field].keys(): if tmp_body[vs_field][parts[1]] != v: return {} else: return {} return discoved_api No newline at end of file exists, value = nested_key_exists(discoved_api, parts) if exists: if v != value: pass_filter = False break return pass_filter No newline at end of file
services/run.sh +1 −1 Original line number Diff line number Diff line Loading @@ -21,7 +21,7 @@ help() { docker_version=$(docker compose version --short | cut -d',' -f1) IFS='.' read -ra version_components <<< "$docker_version" if [ "${version_components[0]}" -ge 2 ] && [ "${version_components[1]}" -ge 10 ]; then if [ "${version_components[0]}" -gt 2 ] || { [ "${version_components[0]}" -eq 2 ] && [ "${version_components[1]}" -ge 10 ]; }; then echo "Docker compose version it greater than 2.10" else echo "Docker compose version is not valid. Should be greater than 2.10" Loading