summaryrefslogtreecommitdiff
path: root/src/kyclogic
diff options
context:
space:
mode:
authorChristian Grothoff <grothoff@gnunet.org>2023-05-23 15:44:23 +0200
committerChristian Grothoff <grothoff@gnunet.org>2023-05-23 15:44:23 +0200
commitae6e62a0a3830f24b7122dc533e1cace40c24578 (patch)
treecc4804d5752852654dca06e7d38283a248b97fd0 /src/kyclogic
parent89e2a02380738262a473997c7cb87b77633819da (diff)
downloadexchange-ae6e62a0a3830f24b7122dc533e1cace40c24578.tar.gz
exchange-ae6e62a0a3830f24b7122dc533e1cace40c24578.tar.bz2
exchange-ae6e62a0a3830f24b7122dc533e1cace40c24578.zip
add document download logic for kycaid
Diffstat (limited to 'src/kyclogic')
-rw-r--r--src/kyclogic/plugin_kyclogic_kycaid.c16
-rw-r--r--src/kyclogic/taler-exchange-kyc-kycaid-converter.sh35
2 files changed, 43 insertions, 8 deletions
diff --git a/src/kyclogic/plugin_kyclogic_kycaid.c b/src/kyclogic/plugin_kyclogic_kycaid.c
index 5dad94d91..95dc4bb78 100644
--- a/src/kyclogic/plugin_kyclogic_kycaid.c
+++ b/src/kyclogic/plugin_kyclogic_kycaid.c
@@ -941,12 +941,16 @@ handle_webhook_finished (void *cls,
resp);
break;
}
- wh->econ = TALER_JSON_external_conversion_start (j,
- &webhook_conversion_cb,
- wh,
- wh->pd->conversion_helper,
- wh->pd->conversion_helper,
- NULL);
+ wh->econ
+ = TALER_JSON_external_conversion_start (
+ j,
+ &webhook_conversion_cb,
+ wh,
+ wh->pd->conversion_helper,
+ wh->pd->conversion_helper,
+ "-a",
+ wh->pd->auth_token,
+ NULL);
return;
}
break;
diff --git a/src/kyclogic/taler-exchange-kyc-kycaid-converter.sh b/src/kyclogic/taler-exchange-kyc-kycaid-converter.sh
index 6e261eaf4..96aca2b80 100644
--- a/src/kyclogic/taler-exchange-kyc-kycaid-converter.sh
+++ b/src/kyclogic/taler-exchange-kyc-kycaid-converter.sh
@@ -24,13 +24,43 @@ while getopts ':a:' OPTION; do
done
# First, extract everything from stdin.
-J=$(jq '{"type":.type,"email":.email,"phone":.phone,"first_name":.first_name,"name-middle":.middle_name,"last_name":.last_name,"dob":.dob,"residence_country":.residence_country,"gender":.gender,"pep":.pep,"addresses":.addresses,"documents":.documents,"company_name":.company_name,"business_activity_id":.business_activity_id,"registration_country":.registration_country}')
+J=$(jq '{"type":.type,"email":.email,"phone":.phone,"first_name":.first_name,"name-middle":.middle_name,"last_name":.last_name,"dob":.dob,"residence_country":.residence_country,"gender":.gender,"pep":.pep,"addresses":.addresses,"documents":.documents,"company_name":.company_name,"business_activity_id":.business_activity_id,"registration_country":.registration_country,"documents":.documents,"decline_reasons":.decline_reasons}')
# TODO:
# log_failure (json_object_get (j, "decline_reasons"));
TYPE=$(echo "$J" | jq -r '.person')
+N=0
+DOCS_RAW=""
+DOCS_JSON=""
+for ID in $(jq -r '.documents[]|select(.status=="valid")|.id')
+do
+ TYPE=$(jq -r ".documents[]|select(.id==\"$ID\")|.type")
+ EXPIRY=$(jq -r ".documents[]|select(.id==\"$ID\")|.expiry_date")
+ DOCUMENT_FILE=$(mktemp -t tmp.XXXXXXXXXX)
+ # Authoriazation: Token $TOKEN
+ DOCUMENT_URL="https://api.kycaid.com/documents/$ID"
+ if [ -z "${TOKEN:-}" ]
+ then
+ wget -q --output-document=- "$DOCUMENT_URL" \
+ | gnunet-base32 > ${DOCUMENT_FILE}
+ else
+ wget -q --output-document=- "$DOCUMENT_URL" \
+ --header "Authorization: Token $TOKEN" \
+ | gnunet-base32 > ${DOCUMENT_FILE}
+ fi
+ DOCS_RAW="$DOCS_RAW --rawfile photo$N \"${DOCUMENT_FILE}\""
+ if [ "$N" = 0 ]
+ then
+ DOCS_JSON="{\"type\":\"$TYPE\",\"image\":\$photo$N}"
+ else
+ DOCS_JSON="{\"type\":\"$TYPE\",\"image\":\$photo$N},$DOCS_JSON"
+ fi
+ N=$(expr $N + 1)
+done
+
+
if [ "person" = "${TYPE}" ]
then
@@ -49,7 +79,8 @@ else
# Combine into final result for business.
echo "$J" | jq \
--arg full_name "${FULLNAME}" \
- '{"company_name":.company_name,"phone":.phone,"email":.email,"registration_country":.registration_country}'
+ $DOCS_RAW \
+ "{\"company_name\":.company_name,\"phone\":.phone,\"email\":.email,\"registration_country\":.registration_country,\"documents\":[${DOCS_JSON}]}"
fi
exit 0