From a417e4b0928884bdce881568a9b3d3007efebf3f Mon Sep 17 00:00:00 2001 From: Samyak Bakliwal Date: Thu, 13 Feb 2020 20:28:46 +0530 Subject: [PATCH 1/2] Fixes miguelmota/cointop#48 --- cointop/chart.go | 18 +++++++++------ .../common/api/impl/coingecko/coingecko.go | 22 +++++++++++-------- .../api/impl/coinmarketcap/coinmarketcap.go | 8 +++---- cointop/common/api/interface.go | 4 ++-- cointop/common/api/types/types.go | 4 ++-- 5 files changed, 32 insertions(+), 24 deletions(-) diff --git a/cointop/chart.go b/cointop/chart.go index a7a23ae..e548731 100644 --- a/cointop/chart.go +++ b/cointop/chart.go @@ -150,7 +150,8 @@ func (ct *Cointop) ChartPoints(symbol string, name string) error { if len(data) == 0 { if symbol == "" { - graphData, err := ct.api.GetGlobalMarketGraphData(start, end) + convert := ct.State.currencyConversion + graphData, err := ct.api.GetGlobalMarketGraphData(convert, start, end) if err != nil { return nil } @@ -159,15 +160,16 @@ func (ct *Cointop) ChartPoints(symbol string, name string) error { data = append(data, price/1e9) } } else { - graphData, err := ct.api.GetCoinGraphData(symbol, name, start, end) + convert := ct.State.currencyConversion + graphData, err := ct.api.GetCoinGraphData(convert, symbol, name, start, end) if err != nil { return nil } // NOTE: edit `termui.LineChart.shortenFloatVal(float64)` to not // use exponential notation. - for i := range graphData.PriceUSD { - price := graphData.PriceUSD[i][1] + for i := range graphData.PriceCoin { + price := graphData.PriceCoin[i][1] data = append(data, price) } } @@ -263,12 +265,14 @@ func (ct *Cointop) PortfolioChart() error { if len(graphData) == 0 { time.Sleep(2 * time.Second) - apiGraphData, err := ct.api.GetCoinGraphData(p.Symbol, p.Name, start, end) + + convert := ct.State.currencyConversion + apiGraphData, err := ct.api.GetCoinGraphData(convert, p.Symbol, p.Name, start, end) if err != nil { return err } - for i := range apiGraphData.PriceUSD { - price := apiGraphData.PriceUSD[i][1] + for i := range apiGraphData.PriceCoin { + price := apiGraphData.PriceCoin[i][1] graphData = append(graphData, price) } } diff --git a/cointop/common/api/impl/coingecko/coingecko.go b/cointop/common/api/impl/coingecko/coingecko.go index 3495d8c..8f31037 100644 --- a/cointop/common/api/impl/coingecko/coingecko.go +++ b/cointop/common/api/impl/coingecko/coingecko.go @@ -131,25 +131,25 @@ func (s *Service) GetAllCoinData(convert string, ch chan []apitypes.Coin) error } // GetCoinGraphData gets coin graph data -func (s *Service) GetCoinGraphData(symbol, name string, start, end int64) (apitypes.CoinGraph, error) { +func (s *Service) GetCoinGraphData(convert, symbol, name string, start, end int64) (apitypes.CoinGraph, error) { ret := apitypes.CoinGraph{} days := strconv.Itoa(util.CalcDays(start, end)) - chart, err := s.client.CoinsIDMarketChart(util.NameToSlug(name), "usd", days) + chart, err := s.client.CoinsIDMarketChart(util.NameToSlug(name), convert, days) if err != nil { return ret, err } var marketCap [][]float64 - var priceUSD [][]float64 + var priceCoin [][]float64 var priceBTC [][]float64 - var volumeUSD [][]float64 + var volumeCoin [][]float64 if chart.Prices != nil { for _, item := range *chart.Prices { timestamp := float64(item[0]) price := float64(item[1]) - priceUSD = append(priceUSD, []float64{ + priceCoin = append(priceCoin, []float64{ timestamp, price, }) @@ -158,17 +158,21 @@ func (s *Service) GetCoinGraphData(symbol, name string, start, end int64) (apity ret.MarketCapByAvailableSupply = marketCap ret.PriceBTC = priceBTC - ret.PriceUSD = priceUSD - ret.VolumeUSD = volumeUSD + ret.PriceCoin = priceCoin + ret.VolumeCoin = volumeCoin return ret, nil } // GetGlobalMarketGraphData gets global market graph data -func (s *Service) GetGlobalMarketGraphData(start int64, end int64) (apitypes.MarketGraph, error) { +func (s *Service) GetGlobalMarketGraphData(convert string, start int64, end int64) (apitypes.MarketGraph, error) { days := strconv.Itoa(util.CalcDays(start, end)) ret := apitypes.MarketGraph{} - graphData, err := s.client.GlobalCharts("usd", days) + convertTo := strings.ToLower(convert) + if convertTo == "" { + convertTo = "usd" + } + graphData, err := s.client.GlobalCharts(convertTo, days) if err != nil { return ret, err } diff --git a/cointop/common/api/impl/coinmarketcap/coinmarketcap.go b/cointop/common/api/impl/coinmarketcap/coinmarketcap.go index 4b034c5..efcd73f 100644 --- a/cointop/common/api/impl/coinmarketcap/coinmarketcap.go +++ b/cointop/common/api/impl/coinmarketcap/coinmarketcap.go @@ -110,7 +110,7 @@ func (s *Service) GetAllCoinData(convert string, ch chan []apitypes.Coin) error } // GetCoinGraphData gets coin graph data -func (s *Service) GetCoinGraphData(symbol string, name string, start int64, end int64) (apitypes.CoinGraph, error) { +func (s *Service) GetCoinGraphData(convert, symbol string, name string, start int64, end int64) (apitypes.CoinGraph, error) { ret := apitypes.CoinGraph{} graphData, err := cmcv2.TickerGraph(&cmcv2.TickerGraphOptions{ Symbol: symbol, @@ -123,13 +123,13 @@ func (s *Service) GetCoinGraphData(symbol string, name string, start int64, end ret.MarketCapByAvailableSupply = graphData.MarketCapByAvailableSupply ret.PriceBTC = graphData.PriceBTC - ret.PriceUSD = graphData.PriceUSD - ret.VolumeUSD = graphData.VolumeUSD + ret.PriceCoin = graphData.PriceUSD + ret.VolumeCoin = graphData.VolumeUSD return ret, nil } // GetGlobalMarketGraphData gets global market graph data -func (s *Service) GetGlobalMarketGraphData(start int64, end int64) (apitypes.MarketGraph, error) { +func (s *Service) GetGlobalMarketGraphData(convert string, start int64, end int64) (apitypes.MarketGraph, error) { ret := apitypes.MarketGraph{} graphData, err := cmcv2.GlobalMarketGraph(&cmcv2.GlobalMarketGraphOptions{ Start: start, diff --git a/cointop/common/api/interface.go b/cointop/common/api/interface.go index edb6bcb..2e824aa 100644 --- a/cointop/common/api/interface.go +++ b/cointop/common/api/interface.go @@ -8,8 +8,8 @@ import ( type Interface interface { Ping() error GetAllCoinData(convert string, ch chan []types.Coin) error - GetCoinGraphData(symbol string, name string, start int64, end int64) (types.CoinGraph, error) - GetGlobalMarketGraphData(start int64, end int64) (types.MarketGraph, error) + GetCoinGraphData(covnert string, symbol string, name string, start int64, end int64) (types.CoinGraph, error) + GetGlobalMarketGraphData(convert string, start int64, end int64) (types.MarketGraph, error) GetGlobalMarketData(convert string) (types.GlobalMarketData, error) //GetCoinData(coin string) (types.Coin, error) //GetAltcoinMarketGraphData(start int64, end int64) (types.MarketGraph, error) diff --git a/cointop/common/api/types/types.go b/cointop/common/api/types/types.go index 2f34065..340273d 100644 --- a/cointop/common/api/types/types.go +++ b/cointop/common/api/types/types.go @@ -31,8 +31,8 @@ type GlobalMarketData struct { type CoinGraph struct { MarketCapByAvailableSupply [][]float64 PriceBTC [][]float64 - PriceUSD [][]float64 - VolumeUSD [][]float64 + PriceCoin [][]float64 + VolumeCoin [][]float64 } // Market struct From f0187c37122776be74eb4caf064dec899cdc1326 Mon Sep 17 00:00:00 2001 From: Miguel Mota Date: Fri, 14 Feb 2020 09:26:43 -0800 Subject: [PATCH 2/2] Fix names --- cointop/chart.go | 8 ++++---- cointop/common/api/impl/coingecko/coingecko.go | 4 ++-- cointop/common/api/impl/coinmarketcap/coinmarketcap.go | 4 ++-- cointop/common/api/interface.go | 2 +- cointop/common/api/types/types.go | 4 ++-- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/cointop/chart.go b/cointop/chart.go index e548731..f2ce2ba 100644 --- a/cointop/chart.go +++ b/cointop/chart.go @@ -168,8 +168,8 @@ func (ct *Cointop) ChartPoints(symbol string, name string) error { // NOTE: edit `termui.LineChart.shortenFloatVal(float64)` to not // use exponential notation. - for i := range graphData.PriceCoin { - price := graphData.PriceCoin[i][1] + for i := range graphData.Price { + price := graphData.Price[i][1] data = append(data, price) } } @@ -271,8 +271,8 @@ func (ct *Cointop) PortfolioChart() error { if err != nil { return err } - for i := range apiGraphData.PriceCoin { - price := apiGraphData.PriceCoin[i][1] + for i := range apiGraphData.Price { + price := apiGraphData.Price[i][1] graphData = append(graphData, price) } } diff --git a/cointop/common/api/impl/coingecko/coingecko.go b/cointop/common/api/impl/coingecko/coingecko.go index 8f31037..69486b2 100644 --- a/cointop/common/api/impl/coingecko/coingecko.go +++ b/cointop/common/api/impl/coingecko/coingecko.go @@ -158,8 +158,8 @@ func (s *Service) GetCoinGraphData(convert, symbol, name string, start, end int6 ret.MarketCapByAvailableSupply = marketCap ret.PriceBTC = priceBTC - ret.PriceCoin = priceCoin - ret.VolumeCoin = volumeCoin + ret.Price = priceCoin + ret.Volume = volumeCoin return ret, nil } diff --git a/cointop/common/api/impl/coinmarketcap/coinmarketcap.go b/cointop/common/api/impl/coinmarketcap/coinmarketcap.go index efcd73f..93e35a8 100644 --- a/cointop/common/api/impl/coinmarketcap/coinmarketcap.go +++ b/cointop/common/api/impl/coinmarketcap/coinmarketcap.go @@ -123,8 +123,8 @@ func (s *Service) GetCoinGraphData(convert, symbol string, name string, start in ret.MarketCapByAvailableSupply = graphData.MarketCapByAvailableSupply ret.PriceBTC = graphData.PriceBTC - ret.PriceCoin = graphData.PriceUSD - ret.VolumeCoin = graphData.VolumeUSD + ret.Price = graphData.PriceUSD + ret.Volume = graphData.VolumeUSD return ret, nil } diff --git a/cointop/common/api/interface.go b/cointop/common/api/interface.go index 2e824aa..536cb34 100644 --- a/cointop/common/api/interface.go +++ b/cointop/common/api/interface.go @@ -8,7 +8,7 @@ import ( type Interface interface { Ping() error GetAllCoinData(convert string, ch chan []types.Coin) error - GetCoinGraphData(covnert string, symbol string, name string, start int64, end int64) (types.CoinGraph, error) + GetCoinGraphData(convert string, symbol string, name string, start int64, end int64) (types.CoinGraph, error) GetGlobalMarketGraphData(convert string, start int64, end int64) (types.MarketGraph, error) GetGlobalMarketData(convert string) (types.GlobalMarketData, error) //GetCoinData(coin string) (types.Coin, error) diff --git a/cointop/common/api/types/types.go b/cointop/common/api/types/types.go index 340273d..3100fdf 100644 --- a/cointop/common/api/types/types.go +++ b/cointop/common/api/types/types.go @@ -31,8 +31,8 @@ type GlobalMarketData struct { type CoinGraph struct { MarketCapByAvailableSupply [][]float64 PriceBTC [][]float64 - PriceCoin [][]float64 - VolumeCoin [][]float64 + Price [][]float64 + Volume [][]float64 } // Market struct