oanda / v20-python

OANDA v20 bindings for Python
MIT License
225 stars 91 forks source link

Add raw_body to __str__ #34

Open Niels-van-den-Hork opened 5 years ago

Niels-van-den-Hork commented 5 years ago

Currently

response = api.pricing.get(
                OANDA_ACCOUNT_ID,
                instruments='EUR_USD',
                since=latest_price_time,
                includeUnitsAvailable=False)

print(response)

can return the following:

Method = GET
Path = https://api-fxpractice.oanda.com:443/v3/accounts/123-456-12345678-123/pricing?instruments=EUR_USD&since=2019-10-08T21%3A38%3A14.598266Z&includeUnitsAvailable=False
Status = 200
Reason = OK
Content-Type = application/json

As I was not familiar with v20, I clicked the link to quickly check the result. Naturally this gave me "Insufficient authorization to perform request."

Only after digging in the source I found the (raw_)body attribute, the one I wanted to use/check in the first place.

With the proposed change, the result would be the following:

Method = GET
Path = https://api-fxpractice.oanda.com:443/v3/accounts/123-456-12345678-123/pricing?instruments=EUR_USD&since=2019-10-08T21%3A38%3A14.598266Z&includeUnitsAvailable=False
Status = 200
Reason = OK
Content-Type = application/json
Raw_Body = {"time":"2019-10-08T21:37:00.794720020Z","prices":[{"type":"PRICE","time":"2019-10-08T21:36:52.424438721Z","bids":[{"price":"1.09539","liquidity":10000000}],"asks":[{"price":"1.09572","liquidity":10000000}],"closeoutBid":"1.09524","closeoutAsk":"1.09587","status":"tradeable","tradeable":true,"quoteHomeConversionFactors":{"positiveUnits":"0.91264192","negativeUnits":"0.91291686"},"instrument":"EUR_USD"}]}

This immediately shows the response body, gives the hint to use the raw_body attribute and does not lead to believe that there is an issue with authentication