#!/bin/bash # This file is in the public domain. . initialize_taler_system.sh echo -n "Configuring merchant instance ..." STATUS=$(curl -H "Content-Type: application/json" -X POST \ -H 'Authorization: Bearer secret-token:super_secret' \ http://localhost:9966/private/instances \ -d '{"auth":{"method":"external"},"payto_uris":["payto://x-taler-bank/localhost/43"],"id":"default","name":"default","address":{},"jurisdiction":{},"default_max_wire_fee":"TESTKUDOS:1", "default_max_deposit_fee":"TESTKUDOS:1","default_wire_fee_amortization":1,"default_wire_transfer_delay":{"d_ms" : 3600000},"default_pay_delay":{"d_ms": 3600000}}' \ -w "%{http_code}" -s -o /dev/null) if [ "$STATUS" != "204" ] then echo 'should respond ok, instance created. got:' $STATUS exit 1 fi echo OK RANDOM_IMG='data:image/png;base64,abcdefg' echo -n "Creating product..." STATUS=$(curl 'http://localhost:9966/instances/default/private/products' \ -d '{"product_id":"2","description":"product with id 2 and price :15","price":"TESTKUDOS:15","total_stock":2,"description_i18n":{},"unit":"","image":"'$RANDOM_IMG'","taxes":[],"address":{},"next_restock":{"t_ms":"never"}}' \ -w "%{http_code}" -s -o /dev/null) if [ "$STATUS" != "204" ] then echo 'should respond ok, product created. got:' $STATUS exit 1 fi echo OK echo -n "Creating order with non-inventory products..." STATUS=$(curl 'http://localhost:9966/instances/default/private/orders' \ -d '{"order":{"amount":"TESTKUDOS:7","summary":"3","products":[{"description":"desct","image":"'$RANDOM_IMG'","price":"TESTKUDOS:1","taxes":[],"unit":"u","quantity":1}]}}' \ -w "%{http_code}" -s -o $LAST_RESPONSE) if [ "$STATUS" != "200" ] then echo 'should response ok, order created. got:' $STATUS `cat $LAST_RESPONSE` exit 1 fi ORDER_ID=`jq -r .order_id < $LAST_RESPONSE` TOKEN=`jq -r .token < $LAST_RESPONSE` STATUS=$(curl http://localhost:9966/orders/$ORDER_ID/claim \ -d '{"nonce":"","token":"'$TOKEN'"}' \ -w "%{http_code}" -s -o $LAST_RESPONSE) if [ "$STATUS" != "200" ] then echo 'should response ok, order claimed. got:' $STATUS `cat $LAST_RESPONSE` exit 1 fi QUANTITY=`jq -r .contract_terms.products[0].quantity < $LAST_RESPONSE` if [ "$QUANTITY" != "1" ] then echo 'should get quantity 1. got:' $QUANTITY # `jq .contract_terms.products[0] < $LAST_RESPONSE` exit 1 fi IMAGE=`jq -r .contract_terms.products[0].image < $LAST_RESPONSE` if [ "$IMAGE" != "$RANDOM_IMG" ] then echo 'should get image but got something else. got:' $IMAGE exit 1 fi echo OK echo -n "Creating order with inventory products..." STATUS=$(curl 'http://localhost:9966/instances/default/private/orders' \ -d '{"order":{"amount":"TESTKUDOS:7","summary":"3"},"inventory_products":[{"product_id":"2","quantity":1}]}' \ -w "%{http_code}" -s -o $LAST_RESPONSE) if [ "$STATUS" != "200" ] then echo 'should response ok, order created. got:' $STATUS `cat $LAST_RESPONSE` exit 1 fi ORDER_ID=`jq -e -r .order_id < $LAST_RESPONSE` TOKEN=`jq -e -r .token < $LAST_RESPONSE` STATUS=$(curl http://localhost:9966/orders/$ORDER_ID/claim \ -d '{"nonce":"","token":"'$TOKEN'"}' \ -w "%{http_code}" -s -o $LAST_RESPONSE) if [ "$STATUS" != "200" ] then echo 'should response ok, order claimed. got:' $STATUS `cat $LAST_RESPONSE` exit 1 fi QUANTITY=`jq -r .contract_terms.products[0].quantity < $LAST_RESPONSE` if [ "$QUANTITY" != "1" ] then echo 'should get quantity 1. got:' $QUANTITY #`jq .contract_terms.products[0] < $LAST_RESPONSE` exit 1 fi echo "OK" STATUS=$(curl 'http://localhost:9966/instances/default/private/products' \ -d '{"product_id":"1","description":"product with id 1 and price :15","price":"USD:15","total_stock":1,"description_i18n":{},"unit":"","image":"","taxes":[],"address":{},"next_restock":{"t_ms":"never"}}' \ -w "%{http_code}" -s -o /dev/null) if [ "$STATUS" != "409" ] then echo 'should respond conflict, product price is in another currency. got:' $STATUS exit 1 fi exit 0