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