Initial commit
This commit is contained in:
commit
27630f0137
|
@ -0,0 +1,35 @@
|
|||
package ovrstat
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
type OvrStatApi struct {
|
||||
Client *http.Client
|
||||
URL string
|
||||
}
|
||||
|
||||
func New(apiUrl string) {
|
||||
return &OvrStatApi{Client: &http.Client{}, URL: apiUrl}
|
||||
}
|
||||
|
||||
func (s *OvrStatApi) Fetch(region, platform, battletag string) (*OverstatApiResponse, error) {
|
||||
res, err := s.Client.Get(fmt.Sprintf("%s/v1/stats/%s/%s/%s", s.URL, region, platform, strings.Replace(battletag, "#", "-", -1)))
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
defer res.Body.Close()
|
||||
|
||||
var r OverstatApiResponse
|
||||
|
||||
if err := json.NewDecoder(res.Body).Decode(&r); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &r, nil
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
package ovrstat
|
||||
|
||||
type OverstatApiResponse struct {
|
||||
Icon string `json:"icon"`
|
||||
Name string `json:"name"`
|
||||
Level int `json:"level"`
|
||||
LevelIcon string `json:"levelIcon"`
|
||||
Prestige int `json:"prestige"`
|
||||
PrestigeIcon string `json:"prestigeIcon"`
|
||||
Rating string `json:"rating"`
|
||||
RatingIcon string `json:"ratingIcon"`
|
||||
GamesWon int `json:"gamesWon"`
|
||||
QuickPlayStats *GameplayStats `json:"quickPlayStats"`
|
||||
CompetitiveStats *GameplayStats `json:"competitiveStats"`
|
||||
}
|
||||
|
||||
type GameplayStats struct {
|
||||
EliminationsAvg float64 `json:"eliminationsAvg"`
|
||||
DamageDoneAvg int `json:"damageDoneAvg"`
|
||||
DeathsAvg float64 `json:"deathsAvg"`
|
||||
FinalBlowsAvg float64 `json:"finalBlowsAvg"`
|
||||
HealingDoneAvg int `json:"healingDoneAvg"`
|
||||
ObjectiveKillsAvg float64 `json:"objectiveKillsAvg"`
|
||||
ObjectiveTimeAvg string `json:"objectiveTimeAvg"`
|
||||
SoloKillsAvg float64 `json:"soloKillsAvg"`
|
||||
TopHeroes *TopHeroStats `json:"topHeros"`
|
||||
}
|
||||
|
||||
type TopHeroStats struct {
|
||||
Ana *HeroStat `json:"ana"`
|
||||
Bastion *HeroStat `json:"bastion"`
|
||||
DVa *HeroStat `json:"d.Va"`
|
||||
Genji *HeroStat `json:"genji"`
|
||||
Hanzo *HeroStat `json:"hanzo"`
|
||||
Junkrat *HeroStat `json:"junkrat"`
|
||||
LCio *HeroStat `json:"lúcio"`
|
||||
Mccree *HeroStat `json:"mccree"`
|
||||
Mei *HeroStat `json:"mei"`
|
||||
Mercy *HeroStat `json:"mercy"`
|
||||
Orisa *HeroStat `json:"orisa"`
|
||||
Pharah *HeroStat `json:"pharah"`
|
||||
Reaper *HeroStat `json:"reaper"`
|
||||
Reinhardt *HeroStat `json:"reinhardt"`
|
||||
Roadhog *HeroStat `json:"roadhog"`
|
||||
Soldier76 *HeroStat `json:"soldier:76"`
|
||||
Sombra *HeroStat `json:"sombra"`
|
||||
Symmetra *HeroStat `json:"symmetra"`
|
||||
Torbjorn *HeroStat `json:"torbjörn"`
|
||||
Tracer *HeroStat `json:"tracer"`
|
||||
Widowmaker *HeroStat `json:"widowmaker"`
|
||||
Winston *HeroStat `json:"winston"`
|
||||
Zarya *HeroStat `json:"zarya"`
|
||||
Zenyatta *HeroStat `json:"zenyatta"`
|
||||
}
|
||||
|
||||
type HeroStat struct {
|
||||
TimePlayed string `json:"timePlayed"`
|
||||
GamesWon int `json:"gamesWon"`
|
||||
WinPercentage int `json:"winPercentage"`
|
||||
WeaponAccuracy int `json:"weaponAccuracy"`
|
||||
EliminationsPerLife int `json:"eliminationsPerLife"`
|
||||
MultiKillBest int `json:"multiKillBest"`
|
||||
ObjectiveKillsAvg float64 `json:"objectiveKillsAvg"`
|
||||
}
|
Loading…
Reference in New Issue