Class: CoinPortfolio::ExchangeClient
- Inherits:
-
Object
- Object
- CoinPortfolio::ExchangeClient
- Defined in:
- lib/coin_portfolio/exchange_client.rb
Instance Method Summary collapse
-
#initialize(api_key:, api_secret:, client_factory: Coinbase::Wallet::Client) ⇒ ExchangeClient
constructor
A new instance of ExchangeClient.
- #price ⇒ Object
- #transactions ⇒ Object
Constructor Details
#initialize(api_key:, api_secret:, client_factory: Coinbase::Wallet::Client) ⇒ ExchangeClient
Returns a new instance of ExchangeClient.
5 6 7 8 9 |
# File 'lib/coin_portfolio/exchange_client.rb', line 5 def initialize(api_key:, api_secret:, client_factory: Coinbase::Wallet::Client) @api_key = api_key @api_secret = api_secret @client_factory = client_factory end |
Instance Method Details
#price ⇒ Object
11 12 13 14 |
# File 'lib/coin_portfolio/exchange_client.rb', line 11 def price sell_price = client.sell_price CoinPortfolio::Money.new(amount: BigDecimal.new(sell_price["amount"]), currency: sell_price["currency"]) end |
#transactions ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/coin_portfolio/exchange_client.rb', line 16 def transactions transactions_from_client.map do |transaction| amount = transaction["amount"] money_amount = CoinPortfolio::Money.new(amount: BigDecimal.new(amount["amount"]).abs, currency: amount["currency"]) native_amount = transaction["native_amount"] money_native_amount = CoinPortfolio::Money.new(amount: BigDecimal.new(native_amount["amount"]).abs, currency: native_amount["currency"]) incoming = amount["amount"][0] != "-" CoinPortfolio::Transaction.new(amount: money_amount, native_amount: money_native_amount, incoming: incoming) end end |