Fix coinbase response pagination (#50890)
* Fix issue #50500 * next is a python keyword
This commit is contained in:
parent
b9086b5e39
commit
99e58f3c18
2 changed files with 17 additions and 3 deletions
|
@ -57,7 +57,7 @@ def setup(hass, config):
|
|||
|
||||
if not hasattr(coinbase_data, "accounts"):
|
||||
return False
|
||||
for account in coinbase_data.accounts.data:
|
||||
for account in coinbase_data.accounts:
|
||||
if account_currencies is None or account.currency in account_currencies:
|
||||
load_platform(hass, "sensor", DOMAIN, {"account": account}, config)
|
||||
for currency in exchange_currencies:
|
||||
|
@ -90,7 +90,21 @@ class CoinbaseData:
|
|||
"""Get the latest data from coinbase."""
|
||||
|
||||
try:
|
||||
self.accounts = self.client.get_accounts()
|
||||
response = self.client.get_accounts()
|
||||
accounts = response["data"]
|
||||
|
||||
# Most of Coinbase's API seems paginated now (25 items per page, but first page has 24).
|
||||
# This API gives a 'next_starting_after' property to send back as a 'starting_after' param.
|
||||
# Their API documentation is not up to date when writing these lines (2021-05-20)
|
||||
next_starting_after = response.pagination.next_starting_after
|
||||
|
||||
while next_starting_after:
|
||||
response = self.client.get_accounts(starting_after=next_starting_after)
|
||||
accounts = accounts + response["data"]
|
||||
next_starting_after = response.pagination.next_starting_after
|
||||
|
||||
self.accounts = accounts
|
||||
|
||||
self.exchange_rates = self.client.get_exchange_rates()
|
||||
except AuthenticationError as coinbase_error:
|
||||
_LOGGER.error(
|
||||
|
|
|
@ -81,7 +81,7 @@ class AccountSensor(SensorEntity):
|
|||
def update(self):
|
||||
"""Get the latest state of the sensor."""
|
||||
self._coinbase_data.update()
|
||||
for account in self._coinbase_data.accounts["data"]:
|
||||
for account in self._coinbase_data.accounts:
|
||||
if self._name == f"Coinbase {account['name']}":
|
||||
self._state = account["balance"]["amount"]
|
||||
self._native_balance = account["native_balance"]["amount"]
|
||||
|
|
Loading…
Add table
Reference in a new issue