Skip to content

Commit 8df1bfe

Browse files
authored
Merge pull request cloudflare#815 from broswen/add-waiting-room-event-preview
add waiting room event preview
2 parents 5b6fe88 + 64f421b commit 8df1bfe

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

waiting_room.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,24 @@ func (api *API) WaitingRoomEvent(ctx context.Context, zoneID string, waitingRoom
260260
return r.Result, nil
261261
}
262262

263+
// WaitingRoomEventPreview returns an event's configuration as if it was active.
264+
// Inherited fields from the waiting room will be displayed with their current values.
265+
//
266+
// API reference: https://api.cloudflare.com/#waiting-room-preview-active-event-details
267+
func (api *API) WaitingRoomEventPreview(ctx context.Context, zoneID string, waitingRoomID string, eventID string) (WaitingRoomEvent, error) {
268+
uri := fmt.Sprintf("/zones/%s/waiting_rooms/%s/events/%s/details", zoneID, waitingRoomID, eventID)
269+
res, err := api.makeRequestContext(ctx, http.MethodGet, uri, nil)
270+
if err != nil {
271+
return WaitingRoomEvent{}, err
272+
}
273+
var r WaitingRoomEventDetailResponse
274+
err = json.Unmarshal(res, &r)
275+
if err != nil {
276+
return WaitingRoomEvent{}, errors.Wrap(err, errUnmarshalError)
277+
}
278+
return r.Result, nil
279+
}
280+
263281
// ChangeWaitingRoomEvent lets you change individual settings for a Waiting Room Event. This is
264282
// in contrast to UpdateWaitingRoomEvent which replaces the entire Waiting Room Event.
265283
//

waiting_room_test.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,31 @@ func TestWaitingRoomEvent(t *testing.T) {
475475
}
476476
}
477477

478+
func TestWaitingRoomEventPreview(t *testing.T) {
479+
setup()
480+
defer teardown()
481+
482+
handler := func(w http.ResponseWriter, r *http.Request) {
483+
assert.Equal(t, http.MethodGet, r.Method, "Expected method 'GET', got %s", r.Method)
484+
w.Header().Set("content-type", "application/json")
485+
fmt.Fprintf(w, `{
486+
"success": true,
487+
"errors": [],
488+
"messages": [],
489+
"result": %s
490+
}
491+
`, waitingRoomEventJSON)
492+
}
493+
494+
mux.HandleFunc("/zones/"+testZoneID+"/waiting_rooms/699d98642c564d2e855e9661899b7252/events/25756b2dfe6e378a06b033b670413757/details", handler)
495+
want := waitingRoomEvent
496+
497+
actual, err := client.WaitingRoomEventPreview(context.Background(), testZoneID, "699d98642c564d2e855e9661899b7252", "25756b2dfe6e378a06b033b670413757")
498+
if assert.NoError(t, err) {
499+
assert.Equal(t, want, actual)
500+
}
501+
}
502+
478503
func TestUpdateWaitingRoomEvent(t *testing.T) {
479504
setup()
480505
defer teardown()

0 commit comments

Comments
 (0)