diff --git a/main.go b/main.go index ae16fc1..da3de1e 100644 --- a/main.go +++ b/main.go @@ -74,6 +74,26 @@ func extractPatches(diffPatch []byte) ([]jsonpatch.Patch, error) { return patches, nil } +func updateFeed(feedResp []byte, gamePk string, ts string, updateId string) ([]byte, error) { + diffPatchResp, err := statsapi.RequestDiffPatch(gamePk, ts, updateId) + patches, err := extractPatches(diffPatchResp) + if err != nil { + feedResp, err = statsapi.RequestFeed(gamePk) + if err != nil { + return feedResp, err + } + } else { + for _, patch := range patches { + feedResp, err = patch.Apply(feedResp) + if err != nil { + return feedResp, err + } + } + } + + return feedResp, err +} + func main() { gamePk := getGamePk() @@ -109,20 +129,9 @@ func main() { log.Fatal(err) } - diffPatchResp, err := statsapi.RequestDiffPatch(gamePk, ts, p.UpdateId) - patches, err := extractPatches(diffPatchResp) + feedResp, err = updateFeed(feedResp, gamePk, ts, p.UpdateId) if err != nil { - feedResp, err = statsapi.RequestFeed(gamePk) - if err != nil { - log.Fatal(err) - } - } else { - for _, patch := range patches { - feedResp, err = patch.Apply(feedResp) - if err != nil { - log.Fatal(err) - } - } + log.Fatal(err) } err = json.Unmarshal(feedResp, &feed)