Skip to content

Commit

Permalink
Merge pull request #59 from vultisig/feat/update-leader-board-apis
Browse files Browse the repository at this point in the history
Update leaderboard apis
  • Loading branch information
johnnyluo authored Oct 9, 2024
2 parents f0e86f6 + 89d9f72 commit eca5b83
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 8 deletions.
15 changes: 11 additions & 4 deletions internal/handlers/vault_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ func (a *Api) getVaultHandler(c *gin.Context) {
TotalPoints: vault.TotalPoints,
JoinAirdrop: vault.JoinAirdrop,
Rank: vault.Rank,
Balance: vault.Balance,
RegisteredAt: vault.Model.CreatedAt.UTC().Unix(),
Coins: []models.ChainCoins{},
}
for _, coin := range coins {
Expand Down Expand Up @@ -126,6 +128,9 @@ func (a *Api) getVaultByUIDHandler(c *gin.Context) {
PublicKeyEDDSA: "",
TotalPoints: vault.TotalPoints,
JoinAirdrop: vault.JoinAirdrop,
Balance: vault.Balance,
Rank: vault.Rank,
RegisteredAt: vault.Model.CreatedAt.UTC().Unix(),
Coins: []models.ChainCoins{},
}
for i, _ := range coins {
Expand Down Expand Up @@ -308,10 +313,12 @@ func (a *Api) getVaultsByRankHandler(c *gin.Context) {
}
for _, vault := range vaults {
vaultResp := models.VaultResponse{
Name: vault.Alias,
Alias: vault.Alias,
TotalPoints: vault.TotalPoints,
Rank: vault.Rank,
Name: vault.Alias,
Alias: vault.Alias,
TotalPoints: vault.TotalPoints,
Rank: vault.Rank,
Balance: vault.Balance,
RegisteredAt: vault.Model.CreatedAt.UTC().Unix(),
}
vaultsResp.Vaults = append(vaultsResp.Vaults, vaultResp)
}
Expand Down
7 changes: 4 additions & 3 deletions internal/models/vault.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,10 @@ type Vault struct {
EDDSA string `gorm:"type:varchar(255);uniqueIndex:ecdsa_eddsa_idx;not null" json:"eddsa" binding:"required"`
HexChainCode string `gorm:"type:varchar(255)" json:"hex_chain_code" binding:"required"`
Uid string `gorm:"type:varchar(255)" json:"uid" binding:"required"`
TotalPoints float64 `json:"total_points"` // total point of the vault
JoinAirdrop bool `json:"join_airdrop"` // join airdrop or not
Rank int64 `json:"rank"` // rank of the vault
TotalPoints float64 `json:"total_points"` // total point of the vault
JoinAirdrop bool `json:"join_airdrop"` // join airdrop or not
Rank int64 `json:"rank"` // rank of the vault
Balance int64 `gorm:"type:bigint;default:0" json:"balance"` // latest balance of the vault
}

func (*Vault) TableName() string {
Expand Down
2 changes: 2 additions & 0 deletions internal/models/vault_resp.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@ type VaultResponse struct {
TotalPoints float64 `json:"total_points"`
JoinAirdrop bool `json:"join_airdrop"`
Rank int64 `json:"rank"`
Balance int64 `json:"balance"`
Coins []ChainCoins `json:"chains"`
RegisteredAt int64 `json:"registered_at"`
}

type VaultsResponse struct {
Expand Down
2 changes: 1 addition & 1 deletion internal/services/vault_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ func (s *Storage) GetLeaderVaults(fromRank int64, limit int) ([]models.Vault, er

func (s *Storage) GetLeaderVaultCount() (int64, error) {
var count int64
if err := s.db.Model(&models.Vault{}).Where("`rank` is not null").Count(&count).Error; err != nil {
if err := s.db.Model(&models.Vault{}).Where("`rank` is not null and `rank` > 0").Count(&count).Error; err != nil {
return 0, fmt.Errorf("failed to get leader vault count: %w", err)
}
return count, nil
Expand Down

0 comments on commit eca5b83

Please sign in to comment.