refactor make api function pass only the data object instead of the whole response
This commit is contained in:
parent
20eddb8fc3
commit
592fbea0e6
36
exporter.go
36
exporter.go
|
@ -347,7 +347,7 @@ func (e *Exporter) collectOracleMetrics(wg *sync.WaitGroup, ch chan<- prometheus
|
|||
}
|
||||
|
||||
ch <- prometheus.MustNewConstMetric(
|
||||
oraclePrice.Desc, oraclePrice.Type, float64(currentOraclePrice.Data.Price)/100000000,
|
||||
oraclePrice.Desc, oraclePrice.Type, float64(currentOraclePrice.Price)/100000000,
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -362,34 +362,34 @@ func (e *Exporter) collectStatsMetrics(wg *sync.WaitGroup, ch chan<- prometheus.
|
|||
}
|
||||
|
||||
ch <- prometheus.MustNewConstMetric(
|
||||
statsValidators.Desc, statsValidators.Type, float64(blockchainStats.Data.Counts.Validators),
|
||||
statsValidators.Desc, statsValidators.Type, float64(blockchainStats.Counts.Validators),
|
||||
)
|
||||
ch <- prometheus.MustNewConstMetric(
|
||||
statsOuis.Desc, statsOuis.Type, float64(blockchainStats.Data.Counts.Ouis),
|
||||
statsOuis.Desc, statsOuis.Type, float64(blockchainStats.Counts.Ouis),
|
||||
)
|
||||
ch <- prometheus.MustNewConstMetric(
|
||||
statsHotspotsDataOnly.Desc, statsHotspotsDataOnly.Type, float64(blockchainStats.Data.Counts.HotspotsDataonly),
|
||||
statsHotspotsDataOnly.Desc, statsHotspotsDataOnly.Type, float64(blockchainStats.Counts.HotspotsDataonly),
|
||||
)
|
||||
ch <- prometheus.MustNewConstMetric(
|
||||
statsBlocks.Desc, statsBlocks.Type, float64(blockchainStats.Data.Counts.Blocks),
|
||||
statsBlocks.Desc, statsBlocks.Type, float64(blockchainStats.Counts.Blocks),
|
||||
)
|
||||
ch <- prometheus.MustNewConstMetric(
|
||||
statsChallenges.Desc, statsChallenges.Type, float64(blockchainStats.Data.Counts.Challenges),
|
||||
statsChallenges.Desc, statsChallenges.Type, float64(blockchainStats.Counts.Challenges),
|
||||
)
|
||||
ch <- prometheus.MustNewConstMetric(
|
||||
statsCities.Desc, statsCities.Type, float64(blockchainStats.Data.Counts.Cities),
|
||||
statsCities.Desc, statsCities.Type, float64(blockchainStats.Counts.Cities),
|
||||
)
|
||||
ch <- prometheus.MustNewConstMetric(
|
||||
statsConsensusGroups.Desc, statsConsensusGroups.Type, float64(blockchainStats.Data.Counts.ConsensusGroups),
|
||||
statsConsensusGroups.Desc, statsConsensusGroups.Type, float64(blockchainStats.Counts.ConsensusGroups),
|
||||
)
|
||||
ch <- prometheus.MustNewConstMetric(
|
||||
statsCountries.Desc, statsCountries.Type, float64(blockchainStats.Data.Counts.Countries),
|
||||
statsCountries.Desc, statsCountries.Type, float64(blockchainStats.Counts.Countries),
|
||||
)
|
||||
ch <- prometheus.MustNewConstMetric(
|
||||
statsHotspots.Desc, statsHotspots.Type, float64(blockchainStats.Data.Counts.Hotspots),
|
||||
statsHotspots.Desc, statsHotspots.Type, float64(blockchainStats.Counts.Hotspots),
|
||||
)
|
||||
ch <- prometheus.MustNewConstMetric(
|
||||
statsTokenSupply.Desc, statsTokenSupply.Type, blockchainStats.Data.TokenSupply,
|
||||
statsTokenSupply.Desc, statsTokenSupply.Type, blockchainStats.TokenSupply,
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -404,7 +404,7 @@ func (e *Exporter) collectAccountMetrics(wg *sync.WaitGroup, ch chan<- prometheu
|
|||
}
|
||||
|
||||
ch <- prometheus.MustNewConstMetric(
|
||||
accountBalanceHnt.Desc, accountBalanceHnt.Type, float64(accountForAddress.Data.Balance),
|
||||
accountBalanceHnt.Desc, accountBalanceHnt.Type, float64(accountForAddress.Balance),
|
||||
account.Address,
|
||||
)
|
||||
}
|
||||
|
@ -419,7 +419,7 @@ func (e *Exporter) collectAccountActivityMetrics(wg *sync.WaitGroup, ch chan<- p
|
|||
return
|
||||
}
|
||||
|
||||
for accType, count := range accountActivityForAddress.Data {
|
||||
for accType, count := range *accountActivityForAddress {
|
||||
ch <- prometheus.MustNewConstMetric(
|
||||
accountActivity.Desc, accountActivity.Type, float64(count),
|
||||
account.Address, accType,
|
||||
|
@ -438,7 +438,7 @@ func (e *Exporter) collectAccountRewardsTotalMetrics(wg *sync.WaitGroup, ch chan
|
|||
}
|
||||
|
||||
ch <- prometheus.MustNewConstMetric(
|
||||
accountRewardsHnt.Desc, accountRewardsHnt.Type, accountRewardTotalsForAddress.Data.Sum,
|
||||
accountRewardsHnt.Desc, accountRewardsHnt.Type, accountRewardTotalsForAddress.Sum,
|
||||
account.Address,
|
||||
)
|
||||
}
|
||||
|
@ -459,7 +459,7 @@ func (e *Exporter) collectAccountTransactionsMetrics(wg *sync.WaitGroup, ch chan
|
|||
return
|
||||
}
|
||||
|
||||
// logic based on https://github.com/helium/hotspot-app/blob/918563fba84d1abf4554a43a4d42bb838d017bd3/src/features/wallet/root/useActivityItem.tsx#L336
|
||||
// impl based on https://github.com/helium/hotspot-app/blob/918563fba84d1abf4554a43a4d42bb838d017bd3/src/features/wallet/root/useActivityItem.tsx#L336
|
||||
for _, activity := range activities.AddGatewayV1 {
|
||||
account.Tx.WithdrawalTotal += activity.StakingFee
|
||||
}
|
||||
|
@ -539,7 +539,7 @@ func (e *Exporter) collectHotspotMetrics(wg *sync.WaitGroup, ch chan<- prometheu
|
|||
return
|
||||
}
|
||||
|
||||
for _, hotspotData := range hotspotsForAddress.Data {
|
||||
for _, hotspotData := range *hotspotsForAddress {
|
||||
// collect hotspot metric requiring extra queries in a new routine
|
||||
wg.Add(2)
|
||||
go e.collectHotspotActivityMetrics(wg, ch, account, hotspotData)
|
||||
|
@ -582,7 +582,7 @@ func (e *Exporter) collectHotspotActivityMetrics(wg *sync.WaitGroup, ch chan<- p
|
|||
return
|
||||
}
|
||||
|
||||
for accType, count := range hotspotActivityForAddress.Data {
|
||||
for accType, count := range *hotspotActivityForAddress {
|
||||
ch <- prometheus.MustNewConstMetric(
|
||||
hotspotActivity.Desc, hotspotActivity.Type, float64(count),
|
||||
account.Address, hotspotData.Address, hotspotData.Name, accType,
|
||||
|
@ -601,7 +601,7 @@ func (e *Exporter) collectHotspotRewardsMetrics(wg *sync.WaitGroup, ch chan<- pr
|
|||
}
|
||||
|
||||
ch <- prometheus.MustNewConstMetric(
|
||||
hotspotRewardsHnt.Desc, hotspotRewardsHnt.Type, hotspotRewardTotalsForAddress.Data.Sum,
|
||||
hotspotRewardsHnt.Desc, hotspotRewardsHnt.Type, hotspotRewardTotalsForAddress.Sum,
|
||||
account.Address, hotspotData.Address, hotspotData.Name,
|
||||
)
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ import (
|
|||
"github.com/helium-blockchain-exporter/heliumapi/activity"
|
||||
)
|
||||
|
||||
func GetAccountForAddress(account string) (*AccountResp, error) {
|
||||
func GetAccountForAddress(account string) (*Account, error) {
|
||||
path := "/v1/accounts/" + account
|
||||
|
||||
// query the api
|
||||
|
@ -24,7 +24,7 @@ func GetAccountForAddress(account string) (*AccountResp, error) {
|
|||
return nil, fmt.Errorf("failed to unmarshal response from path %v: %v", path, err)
|
||||
}
|
||||
|
||||
return &respobject, nil
|
||||
return &respobject.Data, nil
|
||||
}
|
||||
|
||||
func GetActivityForAccount(account string, filterTypes []string, minTime *time.Time, maxTime *time.Time) (*activity.Activities, error) {
|
||||
|
@ -57,7 +57,7 @@ func GetActivityForAccount(account string, filterTypes []string, minTime *time.T
|
|||
return activity.NewActivities(combinedResp)
|
||||
}
|
||||
|
||||
func GetActivityCountsForAccount(account string) (*ActivityCountsResp, error) {
|
||||
func GetActivityCountsForAccount(account string) (*ActivityCounts, error) {
|
||||
path := "/v1/accounts/" + account + "/activity/count"
|
||||
|
||||
// query the api
|
||||
|
@ -73,10 +73,10 @@ func GetActivityCountsForAccount(account string) (*ActivityCountsResp, error) {
|
|||
return nil, fmt.Errorf("failed to unmarshal response from path %v: %v", path, err)
|
||||
}
|
||||
|
||||
return &respobject, nil
|
||||
return &respobject.Data, nil
|
||||
}
|
||||
|
||||
func GetRewardTotalsForAccount(account string, minTime *time.Time, maxTime *time.Time) (*RewardTotalResp, error) {
|
||||
func GetRewardTotalsForAccount(account string, minTime *time.Time, maxTime *time.Time) (*RewardTotal, error) {
|
||||
path := "/v1/accounts/" + account + "/rewards/sum"
|
||||
params := map[string]string{}
|
||||
if minTime != nil {
|
||||
|
@ -99,10 +99,10 @@ func GetRewardTotalsForAccount(account string, minTime *time.Time, maxTime *time
|
|||
return nil, fmt.Errorf("failed to unmarshal response from path %v: %v", path, err)
|
||||
}
|
||||
|
||||
return &respobject, nil
|
||||
return &respobject.Data, nil
|
||||
}
|
||||
|
||||
func GetHotspotsForAccount(account string) (*AccountHotspotsResp, error) {
|
||||
func GetHotspotsForAccount(account string) (*[]AccountHotspot, error) {
|
||||
path := "/v1/accounts/" + account + "/hotspots"
|
||||
|
||||
// query the api
|
||||
|
@ -118,5 +118,5 @@ func GetHotspotsForAccount(account string) (*AccountHotspotsResp, error) {
|
|||
return nil, fmt.Errorf("failed to unmarshal response from path %v: %v", path, err)
|
||||
}
|
||||
|
||||
return &respobject, nil
|
||||
return &respobject.Data, nil
|
||||
}
|
||||
|
|
|
@ -21,7 +21,6 @@ func NewActivities(resp ActivityResp) (*Activities, error) {
|
|||
if err := json.Unmarshal(activityRaw, &activityType); err != nil {
|
||||
return nil, fmt.Errorf("failed to unmarshal activity: %v", err)
|
||||
}
|
||||
fmt.Println(activityType.Type)
|
||||
switch activityType.Type {
|
||||
case "add_gateway_v1":
|
||||
addGatewayV1 := AddGatewayV1{}
|
||||
|
|
|
@ -6,7 +6,7 @@ import (
|
|||
"time"
|
||||
)
|
||||
|
||||
func GetHotspotActivityCount(hotspot string) (*ActivityCountsResp, error) {
|
||||
func GetHotspotActivityCount(hotspot string) (*ActivityCounts, error) {
|
||||
path := "/v1/hotspots/" + hotspot + "/activity/count"
|
||||
|
||||
// query the api
|
||||
|
@ -22,10 +22,10 @@ func GetHotspotActivityCount(hotspot string) (*ActivityCountsResp, error) {
|
|||
return nil, fmt.Errorf("failed to unmarshal response from path %v: %v", path, err)
|
||||
}
|
||||
|
||||
return &respobject, nil
|
||||
return &respobject.Data, nil
|
||||
}
|
||||
|
||||
func GetRewardsTotalForHotspot(hotspot string, minTime *time.Time, maxTime *time.Time) (*RewardTotalResp, error) {
|
||||
func GetRewardsTotalForHotspot(hotspot string, minTime *time.Time, maxTime *time.Time) (*RewardTotal, error) {
|
||||
path := "/v1/hotspots/" + hotspot + "/rewards/sum"
|
||||
params := map[string]string{}
|
||||
if minTime != nil {
|
||||
|
@ -48,5 +48,5 @@ func GetRewardsTotalForHotspot(hotspot string, minTime *time.Time, maxTime *time
|
|||
return nil, fmt.Errorf("failed to unmarshal response from path %v: %v", path, err)
|
||||
}
|
||||
|
||||
return &respobject, nil
|
||||
return &respobject.Data, nil
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ import (
|
|||
"fmt"
|
||||
)
|
||||
|
||||
func GetCurrentOraclePrice() (*CurrentOraclePriceResp, error) {
|
||||
func GetCurrentOraclePrice() (*CurrentOraclePrice, error) {
|
||||
const path = "/v1/oracle/prices/current"
|
||||
|
||||
// query the api
|
||||
|
@ -21,5 +21,5 @@ func GetCurrentOraclePrice() (*CurrentOraclePriceResp, error) {
|
|||
return nil, fmt.Errorf("failed to unmarshal response from path %v: %v", path, err)
|
||||
}
|
||||
|
||||
return &respobject, nil
|
||||
return &respobject.Data, nil
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ import (
|
|||
"fmt"
|
||||
)
|
||||
|
||||
func GetBlockchainStats() (*BlockchainStatsResp, error) {
|
||||
func GetBlockchainStats() (*BlockchainStats, error) {
|
||||
const path = "/v1/stats"
|
||||
|
||||
// query the api
|
||||
|
@ -21,5 +21,5 @@ func GetBlockchainStats() (*BlockchainStatsResp, error) {
|
|||
return nil, fmt.Errorf("failed to unmarshal response from path %v: %v", path, err)
|
||||
}
|
||||
|
||||
return &respobject, nil
|
||||
return &respobject.Data, nil
|
||||
}
|
||||
|
|
|
@ -58,9 +58,11 @@ type AccountHotspot struct {
|
|||
}
|
||||
|
||||
type ActivityCountsResp struct {
|
||||
Data map[string]int
|
||||
Data ActivityCounts
|
||||
}
|
||||
|
||||
type ActivityCounts map[string]int
|
||||
|
||||
type RewardTotalResp struct {
|
||||
Meta struct {
|
||||
MinTime string `json:"min_time"`
|
||||
|
|
Reference in New Issue