crypto-market-extractor: Failsafe API
Signed-off-by: Alexis Pentori <alexis@status.im>
This commit is contained in:
parent
691a633300
commit
067652009e
|
@ -47,9 +47,9 @@ pip install -r requirements.txt
|
||||||
### Locally running the connector
|
### Locally running the connector
|
||||||
```
|
```
|
||||||
python main.py spec
|
python main.py spec
|
||||||
python main.py check --config sample_files/coin_list.json
|
python main.py check --config sample_files/config-example.json
|
||||||
python main.py discover --config sample_files/coin_list.json
|
python main.py discover --config sample_files/config-example.json
|
||||||
python main.py read --config sample_files/coin_list.json --catalog sample_files/configured_catalog.json
|
python main.py read --config sample_files/config-example.json --catalog sample_files/configured_catalog.json
|
||||||
```
|
```
|
||||||
|
|
||||||
### Locally running the connector docker image
|
### Locally running the connector docker image
|
||||||
|
|
|
@ -10,7 +10,7 @@ data:
|
||||||
connectorSubtype: api
|
connectorSubtype: api
|
||||||
connectorType: source
|
connectorType: source
|
||||||
definitionId: ce91e290-be98-4a34-b43b-28330afdc3c9
|
definitionId: ce91e290-be98-4a34-b43b-28330afdc3c9
|
||||||
dockerImageTag: 0.0.3
|
dockerImageTag: 0.1.0
|
||||||
dockerRepository: harbor.status.im/status-im/airbyte/crypto-market-extractor
|
dockerRepository: harbor.status.im/status-im/airbyte/crypto-market-extractor
|
||||||
githubIssueLabel: source-crypto-market-extractor
|
githubIssueLabel: source-crypto-market-extractor
|
||||||
icon: crypto-market-extractor.svg
|
icon: crypto-market-extractor.svg
|
||||||
|
|
|
@ -44,13 +44,19 @@ class CoinPrice(HttpStream):
|
||||||
coin=stream_slice["coin"]
|
coin=stream_slice["coin"]
|
||||||
logger.info("Parsing Coin Gecko data for %s", coin)
|
logger.info("Parsing Coin Gecko data for %s", coin)
|
||||||
market_chart = response.json()
|
market_chart = response.json()
|
||||||
yield {
|
logger.info("Response: %s", market_chart)
|
||||||
"name": coin,
|
data={ "name": coin, "date": datetime.today().strftime('%Y%m%d_%H%M')}
|
||||||
"date": datetime.today().strftime('%Y%m%d_%H%M'),
|
try:
|
||||||
# The first value of the prices objects is weird
|
if len(market_chart) > 1:
|
||||||
"price": market_chart['prices'][1][1],
|
data['price'] = market_chart['prices'][1][1]
|
||||||
}
|
elif len(market_chart) == 1:
|
||||||
|
data['price'] = market_chart['prices'][0][1]
|
||||||
|
else:
|
||||||
|
logger.error("Invalid response from API, %s", market_chart)
|
||||||
|
raise "No correct data return"
|
||||||
|
except err:
|
||||||
|
logger.error('An error happened : %s', err)
|
||||||
|
yield data
|
||||||
# Source
|
# Source
|
||||||
class SourceCryptoMarketExtractor(AbstractSource):
|
class SourceCryptoMarketExtractor(AbstractSource):
|
||||||
def check_connection(self, logger, config) -> Tuple[bool, any]:
|
def check_connection(self, logger, config) -> Tuple[bool, any]:
|
||||||
|
|
Loading…
Reference in New Issue