testing updating a game type
This commit is contained in:
parent
9ebb5bf610
commit
def18e04e2
|
@ -0,0 +1,19 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import "scm.dairydemon.net/filifa/mlblive/internal/statsapi"
|
||||||
|
|
||||||
|
type Game struct {
|
||||||
|
CurrPlayDesc string
|
||||||
|
HomeScore uint
|
||||||
|
AwayScore uint
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *Game) Update(feed *statsapi.FeedResponse) {
|
||||||
|
homeScore, _ := (*feed)["liveData"].(map[string]any)["linescore"].(map[string]any)["teams"].(map[string]any)["home"].(map[string]any)["runs"].(float64)
|
||||||
|
awayScore, _ := (*feed)["liveData"].(map[string]any)["linescore"].(map[string]any)["teams"].(map[string]any)["away"].(map[string]any)["runs"].(float64)
|
||||||
|
desc, _ := (*feed)["liveData"].(map[string]any)["plays"].(map[string]any)["currentPlay"].(map[string]any)["result"].(map[string]any)["description"].(string)
|
||||||
|
|
||||||
|
g.HomeScore = uint(homeScore)
|
||||||
|
g.AwayScore = uint(awayScore)
|
||||||
|
g.CurrPlayDesc = desc
|
||||||
|
}
|
|
@ -76,6 +76,7 @@ func patch(obj any, path string, value any) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
// FIXME: think i need to do bounds checking here too
|
||||||
err = patch(v[idx], rest, value)
|
err = patch(v[idx], rest, value)
|
||||||
default:
|
default:
|
||||||
err = errors.New("couldn't determine type")
|
err = errors.New("couldn't determine type")
|
||||||
|
|
29
main.go
29
main.go
|
@ -59,11 +59,8 @@ func main() {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
j, err := json.Marshal(feed)
|
var game Game
|
||||||
if err != nil {
|
game.Update(&feed)
|
||||||
log.Fatal(err)
|
|
||||||
}
|
|
||||||
fmt.Println(string(j))
|
|
||||||
|
|
||||||
ts := feed["metaData"].(map[string]any)["timeStamp"].(string)
|
ts := feed["metaData"].(map[string]any)["timeStamp"].(string)
|
||||||
|
|
||||||
|
@ -75,18 +72,18 @@ func main() {
|
||||||
|
|
||||||
patches, err := statsapi.DiffPatch(gamePk, ts, p.UpdateId)
|
patches, err := statsapi.DiffPatch(gamePk, ts, p.UpdateId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
feed, err = statsapi.Feed(gamePk)
|
||||||
}
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
for _, patch := range patches {
|
}
|
||||||
for _, instr := range patch.Diff {
|
} else {
|
||||||
feed.Patch(&instr)
|
for _, patch := range patches {
|
||||||
|
for _, instr := range patch.Diff {
|
||||||
|
feed.Patch(&instr)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
j, err = json.Marshal(feed)
|
game.Update(&feed)
|
||||||
if err != nil {
|
fmt.Println(game)
|
||||||
log.Fatal(err)
|
|
||||||
}
|
|
||||||
fmt.Println(string(j))
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue