Skip to content

Commit 8917573

Browse files
authored
feat(dev-server): Support polling API (#466)
implement /sdk/latest-all
1 parent e1a448b commit 8917573

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

internal/dev_server/sdk/polling.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package sdk
2+
3+
import (
4+
"encoding/json"
5+
"net/http"
6+
7+
"github.com/pkg/errors"
8+
)
9+
10+
func LatestAll(w http.ResponseWriter, r *http.Request) {
11+
ctx := r.Context()
12+
allFlags, err := GetAllFlagsFromContext(ctx)
13+
if err != nil {
14+
WriteError(ctx, w, errors.Wrap(err, "failed to get flag state"))
15+
return
16+
}
17+
serverFlags := ServerAllPayloadFromFlagsState(allFlags)
18+
enc := json.NewEncoder(w)
19+
err = enc.Encode(serverFlags.Data)
20+
if err != nil {
21+
WriteError(ctx, w, errors.Wrap(err, "failed to encode response"))
22+
return
23+
}
24+
}

internal/dev_server/sdk/routes.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ func BindRoutes(router *mux.Router) {
2020
router.HandleFunc("/mobile/events/diagnostic", DevNull)
2121

2222
router.Handle("/all", GetProjectKeyFromAuthorizationHeader(http.HandlerFunc(StreamServerAllPayload)))
23+
router.Handle("/sdk/latest-all", GetProjectKeyFromAuthorizationHeader(http.HandlerFunc(LatestAll)))
2324

2425
router.PathPrefix("/sdk/flags/{flagKey}").
2526
Methods(http.MethodGet).

0 commit comments

Comments
 (0)