move extractpatches function to api
This commit is contained in:
parent
a8e055d094
commit
500bf7baa4
|
@ -1,9 +1,12 @@
|
|||
package statsapi
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/url"
|
||||
|
||||
"github.com/evanphx/json-patch/v5"
|
||||
)
|
||||
|
||||
var DefaultClient = NewClient(http.DefaultClient)
|
||||
|
@ -35,6 +38,32 @@ func NewClient(c *http.Client) *Client {
|
|||
}
|
||||
}
|
||||
|
||||
func ExtractPatches(diffPatch []byte) ([]jsonpatch.Patch, error) {
|
||||
var patches []jsonpatch.Patch
|
||||
|
||||
var objs []map[string]any
|
||||
err := json.Unmarshal(diffPatch, &objs)
|
||||
if err != nil {
|
||||
return patches, err
|
||||
}
|
||||
|
||||
for _, obj := range objs {
|
||||
diff := obj["diff"]
|
||||
patch, err := json.Marshal(diff)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
|
||||
p, err := jsonpatch.DecodePatch(patch)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
patches = append(patches, p)
|
||||
}
|
||||
|
||||
return patches, err
|
||||
}
|
||||
|
||||
func (c *Client) RequestSchedule(sportId, teamId string) ([]byte, error) {
|
||||
endpoint := url.URL{Path: "api/v1/schedule"}
|
||||
query := endpoint.Query()
|
||||
|
|
29
main.go
29
main.go
|
@ -9,7 +9,6 @@ import (
|
|||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/evanphx/json-patch/v5"
|
||||
"scm.dairydemon.net/filifa/mlblive/internal/statsapi"
|
||||
)
|
||||
|
||||
|
@ -49,39 +48,13 @@ func getGamePk() string {
|
|||
return gamePk
|
||||
}
|
||||
|
||||
func extractPatches(diffPatch []byte) ([]jsonpatch.Patch, error) {
|
||||
var patches []jsonpatch.Patch
|
||||
|
||||
var objs []map[string]any
|
||||
err := json.Unmarshal(diffPatch, &objs)
|
||||
if err != nil {
|
||||
return patches, err
|
||||
}
|
||||
|
||||
for _, obj := range objs {
|
||||
diff := obj["diff"]
|
||||
patch, err := json.Marshal(diff)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
|
||||
p, err := jsonpatch.DecodePatch(patch)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
patches = append(patches, p)
|
||||
}
|
||||
|
||||
return patches, err
|
||||
}
|
||||
|
||||
func updateFeed(feedResp []byte, gamePk, ts, updateId string) ([]byte, error) {
|
||||
diffPatchResp, err := statsapi.RequestDiffPatch(gamePk, ts, updateId)
|
||||
if err != nil {
|
||||
return statsapi.RequestFeed(gamePk)
|
||||
}
|
||||
|
||||
patches, err := extractPatches(diffPatchResp)
|
||||
patches, err := statsapi.ExtractPatches(diffPatchResp)
|
||||
if err != nil {
|
||||
return statsapi.RequestFeed(gamePk)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue