diff options
| author | Christian Grothoff <grothoff@gnunet.org> | 2023-05-23 15:44:23 +0200 | 
|---|---|---|
| committer | Christian Grothoff <grothoff@gnunet.org> | 2023-05-23 15:44:23 +0200 | 
| commit | ae6e62a0a3830f24b7122dc533e1cace40c24578 (patch) | |
| tree | cc4804d5752852654dca06e7d38283a248b97fd0 /src | |
| parent | 89e2a02380738262a473997c7cb87b77633819da (diff) | |
add document download logic for kycaid
Diffstat (limited to 'src')
| -rw-r--r-- | src/kyclogic/plugin_kyclogic_kycaid.c | 16 | ||||
| -rw-r--r-- | src/kyclogic/taler-exchange-kyc-kycaid-converter.sh | 35 | ||||
| -rw-r--r-- | src/mhd/mhd_config.c | 2 | 
3 files changed, 44 insertions, 9 deletions
| diff --git a/src/kyclogic/plugin_kyclogic_kycaid.c b/src/kyclogic/plugin_kyclogic_kycaid.c index 5dad94d9..95dc4bb7 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 6e261eaf..96aca2b8 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 diff --git a/src/mhd/mhd_config.c b/src/mhd/mhd_config.c index 0e9f2e08..31ec3e47 100644 --- a/src/mhd/mhd_config.c +++ b/src/mhd/mhd_config.c @@ -78,7 +78,7 @@ TALER_MHD_parse_config (const struct GNUNET_CONFIGURATION_Handle *cfg,      if (GNUNET_OK !=          GNUNET_CONFIGURATION_get_value_number (cfg,                                                 section, -                                               "port", +                                               "PORT",                                                 &port))      {        GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR, | 
