54 lines
1.2 KiB
Bash
Executable File
54 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
#set -x
|
|
set -e
|
|
. helpers.sh
|
|
mkdir -p temp
|
|
|
|
ErrorLogLevel=err
|
|
#Handle additional commandline parameters
|
|
if [[ $1 == -* ]]; then
|
|
if [[ $1 == "-ErrorAsWarning" ]]; then
|
|
ErrorLogLevel=warning
|
|
shift
|
|
fi
|
|
fi
|
|
|
|
markets=""
|
|
if [[ ! -z $1 ]]; then
|
|
markets=$1
|
|
shift
|
|
fi
|
|
|
|
if [[ -z "${markets}" ]]; then
|
|
markets="equity&markets=option&markets=bond&markets=future&markets=forex"
|
|
fi
|
|
|
|
queryString="?markets=${markets}"
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
queryString="${queryString}&$1=$2"
|
|
shift; shift
|
|
done
|
|
|
|
log "Querying for markets: _${markets}_ query string: _${queryString}_" debug
|
|
|
|
curl -s -X GET "https://api.schwabapi.com/marketdata/v1/markets${queryString}" \
|
|
-H "Authorization: Bearer $(<access_token.dat)" > temp/markets.tmp.$$.json
|
|
|
|
|
|
marketsCheck=$(jq -e -r '.. | .isOpen?' temp/markets.tmp.$$.json | grep -v null | wc -l)
|
|
if [[ ${marketsCheck} -eq 0 ]]; then
|
|
errMsg="ERROR: THE RESPONSE IS INCORRECT! markets: _${markets}_ Check: _${marketsCheck}_ check file _temp/markets.tmp.$$.json_"
|
|
if [[ "${ErrorLogLevel}" == "err" ]]; then
|
|
throw "${errMsg}" ${ErrorLogLevel} 2
|
|
else
|
|
log "${errMsg}" ${ErrorLogLevel}
|
|
exit 2
|
|
fi
|
|
else
|
|
jq < temp/markets.tmp.$$.json
|
|
rm temp/markets.tmp.$$.json
|
|
fi
|
|
|
|
|