@@ -3,23 +3,6 @@ if [[ $SHELL != *"bash"* ]]; then
33 echo " PROBLEM: Run these scripts from within the bash shell."
44fi
55
6- if ! command -v jq & > /dev/null; then
7- echo " jq is not installed. Installing jq..."
8- if [[ " $OSTYPE " == " linux-gnu" * ]]; then
9- sudo apt-get update && sudo apt-get install -y jq # For Debian/Ubuntu
10- elif [[ " $OSTYPE " == " darwin" * ]]; then
11- brew install jq # For macOS (Homebrew)
12- elif [[ " $OSTYPE " == " cygwin" || " $OSTYPE " == " msys" ]]; then
13- echo " Please install jq manually from: https://stedolan.github.io/jq/download/"
14- exit 1
15- else
16- echo " Unsupported OS. Please install jq manually."
17- exit 1
18- fi
19- else
20- echo " jq is already installed."
21- fi
22-
236ds_access_token_path=" config/ds_access_token.txt"
247verification_file=" config/verification_app.txt"
258
@@ -50,16 +33,29 @@ echo "Response:"
5033cat $response
5134echo " "
5235
36+ invoke_python () {
37+ if [[ $( python3 --version 2>&1 ) == * " not found" * ]]; then
38+ if [[ $( python --version 2>&1 ) != * " not found" * ]]; then
39+ python -c " from examples.ConnectedFields.jsonParsingUtils import *; from json import *; print($1 )"
40+ else
41+ echo " Either python or python3 must be installed to use this option."
42+ exit 1
43+ fi
44+ else
45+ python3 -c " from examples.ConnectedFields.jsonParsingUtils import *; from json import *; print($1 )"
46+ fi
47+ }
48+
5349# Extract tab data from response
5450# ds-snippet-start:ConnectedFields1Step4
5551extract_verify_info () {
5652 clean_response=$( sed -n ' /\[/,$p' " $response " )
57- echo " $clean_response " | jq ' [.[] | select((.tabs[]?.extensionData.actionContract | contains("Verify")) or (.tabs[]?.tabLabel? // empty | contains("connecteddata")))] '
53+ invoke_python " filter_by_verify_action(''' $clean_response ''') "
5854}
5955
6056prompt_user_choice () {
61- local json_data=" $1 "
62- mapfile -t unique_apps < <( echo " $json_data " | jq -r ' [.[] | {appId: .appId, applicationName: .tabs[0].extensionData.applicationName}] | unique_by(.appId) | .[] | "\(.appId) \(.applicationName)" ' )
57+ local json_data=" ''' $1 ''' "
58+ mapfile -t unique_apps < <( invoke_python " extract_unique_apps( $json_data ) " )
6359
6460 if [[ -z " $json_data " || " $json_data " == " []" ]]; then
6561 echo " No data verification were found in the account. Please install a data verification app."
@@ -76,8 +72,8 @@ prompt_user_choice() {
7672
7773 read -p " Enter choice (1-${# unique_apps[@]} ): " choice
7874 if [[ " $choice " =~ ^[1-${# unique_apps[@]} ]$ ]]; then
79- chosen_app_id=" ${unique_apps[$((choice-1))]%% * } "
80- selected_data=$( echo " $json_data " | jq --arg appId " $chosen_app_id " ' [.[] | select(.appId == $appId)] ' )
75+ chosen_app_id=" ' ${unique_apps[$((choice-1))]%% * } ' "
76+ selected_data=$( invoke_python " filter_by_app_id( $json_data , $chosen_app_id ) " )
8177 parse_verification_data " $selected_data "
8278 else
8379 echo " Invalid choice. Exiting."
@@ -86,22 +82,22 @@ prompt_user_choice() {
8682}
8783
8884parse_verification_data () {
89- local clean_json=" $1 "
90-
91- app_id=$( echo " $clean_json " | jq -r ' .[0].appId' )
92- extension_group_id=$( echo " $clean_json " | jq -r ' .[0].tabs[0].extensionData.extensionGroupId' )
93- publisher_name=$( echo " $clean_json " | jq -r ' .[0].tabs[0].extensionData.publisherName' )
94- application_name=$( echo " $clean_json " | jq -r ' .[0].tabs[0].extensionData.applicationName' )
95- action_name=$( echo " $clean_json " | jq -r ' .[0].tabs[0].extensionData.actionName' )
96- action_input_key=$( echo " $clean_json " | jq -r ' .[0].tabs[0].extensionData.actionInputKey' )
97- action_contract=$( echo " $clean_json " | jq -r ' .[0].tabs[0].extensionData.actionContract' )
98- extension_name=$( echo " $clean_json " | jq -r ' .[0].tabs[0].extensionData.extensionName' )
99- extension_contract=$( echo " $clean_json " | jq -r ' .[0].tabs[0].extensionData.extensionContract' )
100- required_for_extension=$( echo " $clean_json " | jq -r ' .[0].tabs[0].extensionData.requiredForExtension' )
101- tab_label=$( echo " $clean_json " | jq -r ' .[0].tabs[].tabLabel' )
102- connection_key=$( echo " $clean_json " | jq -r ' .[0].tabs[0].extensionData.connectionInstances[0].connectionKey' )
103- connection_value=$( echo " $clean_json " | jq -r ' .[0].tabs[0].extensionData.connectionInstances[0].connectionValue' )
85+ local clean_json=" '''$1 '''"
10486
87+ app_id=$( echo " $clean_json " | invoke_python " get_app_id($clean_json )" )
88+ extension_group_id=$( echo " $clean_json " | invoke_python " get_extension_group_id($clean_json )" )
89+ publisher_name=$( echo " $clean_json " | invoke_python " get_publisher_name($clean_json )" )
90+ application_name=$( echo " $clean_json " | invoke_python " get_application_name($clean_json )" )
91+ action_name=$( echo " $clean_json " | invoke_python " get_action_name($clean_json )" )
92+ action_input_key=$( echo " $clean_json " | invoke_python " get_action_input_key($clean_json )" )
93+ action_contract=$( echo " $clean_json " | invoke_python " get_action_contract($clean_json )" )
94+ extension_name=$( echo " $clean_json " | invoke_python " get_extension_name($clean_json )" )
95+ extension_contract=$( echo " $clean_json " | invoke_python " get_extension_contract($clean_json )" )
96+ required_for_extension=$( echo " $clean_json " | invoke_python " get_required_for_extension($clean_json )" )
97+ tab_label=$( echo " $clean_json " | invoke_python " get_tab_label($clean_json )" )
98+ connection_key=$( echo " $clean_json " | invoke_python " get_connection_key($clean_json )" )
99+ connection_value=$( echo " $clean_json " | invoke_python " get_connection_value($clean_json )" )
100+
105101 echo " App ID: $app_id "
106102 echo " Extension Group ID: $extension_group_id "
107103 echo " Publisher Name: $publisher_name "
@@ -140,7 +136,7 @@ doc1_base64=$(mktemp /tmp/eg-001-doc1.XXXXXX)
140136cat demo_documents/World_Wide_Corp_lorem.pdf | base64 > $doc1_base64
141137
142138# Construct the request body
143- # ds-snippet-start:eConnectedFields1Step5
139+ # ds-snippet-start:ConnectedFields1Step5
144140printf \
145141' {
146142 "emailSubject": "Please sign this document",
0 commit comments