testing updating a game type

This commit is contained in:
filifa 2024-07-03 23:52:40 -05:00
parent 9ebb5bf610
commit def18e04e2
3 changed files with 33 additions and 16 deletions

19
game.go Normal file
View File

@ -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
}

View File

@ -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
View File

@ -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))
} }