github.com/muxinc/mux-go@v1.1.1/examples/data/realtime/exercise-realtime.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  
     7  	muxgo "github.com/muxinc/mux-go"
     8  	"github.com/muxinc/mux-go/examples/common"
     9  )
    10  
    11  func main() {
    12  
    13  	// API Client Initialization
    14  	client := muxgo.NewAPIClient(
    15  		muxgo.NewConfiguration(
    16  			muxgo.WithBasicAuth(os.Getenv("MUX_TOKEN_ID"), os.Getenv("MUX_TOKEN_SECRET")),
    17  		))
    18  
    19  	// Test coverage here isn't fantastic due to not knowning if the account we're testing against has
    20  	// any real-time data. The behaviour has been manually verified against real-world data.
    21  
    22  	// ========== list-realtime-dimensions ==========
    23  	d, err := client.RealTimeApi.ListRealtimeDimensions()
    24  	common.AssertNoError(err)
    25  	common.AssertNotNil(d.Data)
    26  	common.AssertIntGreaterThanZero(len(d.Data))
    27  	common.AssertStringNotEqualsValue(d.Data[0].Name, "")
    28  	common.AssertStringNotEqualsValue(d.Data[0].DisplayName, "")
    29  	fmt.Println("list-realtime-dimensions ✅")
    30  
    31  	// ========== list-realtime-metrics ==========
    32  	m, err := client.RealTimeApi.ListRealtimeMetrics()
    33  	common.AssertNoError(err)
    34  	common.AssertNotNil(m.Data)
    35  	common.AssertIntGreaterThanZero(len(m.Data))
    36  	common.AssertStringNotEqualsValue(m.Data[0].Name, "")
    37  	common.AssertStringNotEqualsValue(m.Data[0].DisplayName, "")
    38  	fmt.Println("list-realtime-metrics ✅")
    39  
    40  	// ========== get-realtime-breakdown ==========
    41  	rbp := muxgo.GetRealtimeBreakdownParams{Dimension: "asn"}
    42  	b, err := client.RealTimeApi.GetRealtimeBreakdown("current-rebuffering-percentage", muxgo.WithParams(&rbp))
    43  	common.AssertNoError(err)
    44  	common.AssertNotNil(b.Data)
    45  	fmt.Println("get-realtime-breakdown ✅")
    46  
    47  	// ========== get-realtime-histogram-timeseries ==========
    48  	ht, err := client.RealTimeApi.GetRealtimeHistogramTimeseries("video-startup-time")
    49  	common.AssertNoError(err)
    50  	common.AssertNotNil(ht.Meta)
    51  	common.AssertNotNil(ht.Meta.Buckets)
    52  	common.AssertIntGreaterThanZero(len(ht.Meta.Buckets))
    53  	common.AssertNotNil(ht.Data)
    54  	common.AssertIntGreaterThanZero(len(ht.Data))
    55  	fmt.Println("get-realtime-histogram-timeseries ✅")
    56  
    57  	// ========== get-realtime-timeseries ==========
    58  	t, err := client.RealTimeApi.GetRealtimeTimeseries("current-rebuffering-percentage")
    59  	common.AssertNoError(err)
    60  	common.AssertNotNil(t.Data)
    61  	common.AssertIntGreaterThanZero(len(t.Data))
    62  	common.AssertStringNotEqualsValue(t.Data[0].Date, "")
    63  	fmt.Println("get-realtime-timeseries ✅")
    64  
    65  }