@@ -35,7 +35,7 @@ func NewRequest(method string, path string, queryParameters []string, body []byt
3535 var err error
3636 var cursor string
3737
38- isExtensionsEndpoint := false // https://github.com/twitchdev/twitch-cli/issues/157
38+ isExtensionsLiveEndpoint := false // https://github.com/twitchdev/twitch-cli/issues/157
3939
4040 data .Data = make ([]interface {}, 0 )
4141 client , err := GetClientInformation ()
@@ -104,20 +104,26 @@ func NewRequest(method string, path string, queryParameters []string, body []byt
104104 }
105105 if strings .Contains (u .String (), "extensions/live" ) {
106106 // https://github.com/twitchdev/twitch-cli/issues/157
107- isExtensionsEndpoint = true
107+ isExtensionsLiveEndpoint = true
108108 var extensionsBody models.ExtensionAPIResponse
109109 err = json .Unmarshal (resp .Body , & extensionsBody )
110110 if err != nil {
111111 fmt .Printf ("Error unmarshalling body: %v" , err )
112112 return
113113 }
114+
115+ var cursor string = ""
116+ if extensionsBody .Pagination != nil {
117+ cursor = * extensionsBody .Pagination
118+ }
119+
114120 apiResponse = models.APIResponse {
115121 Data : extensionsBody .Data ,
116122 Status : extensionsBody .Status ,
117123 Error : extensionsBody .Error ,
118124 Message : extensionsBody .Message ,
119125 Pagination : & models.APIPagination {
120- Cursor : * extensionsBody . Pagination ,
126+ Cursor : cursor ,
121127 },
122128 }
123129 } else {
@@ -175,12 +181,17 @@ func NewRequest(method string, path string, queryParameters []string, body []byt
175181 data .Data = make ([]interface {}, 0 )
176182 }
177183 // handle json marshalling better; returns empty slice vs. null
178- if ! strings .Contains (path , "schedule" ) && len (data .Data .([]interface {})) == 0 && data .Error == "" {
184+ _ , isInterface := data .Data .([]interface {})
185+ if isInterface && ! strings .Contains (path , "schedule" ) && len (data .Data .([]interface {})) == 0 && data .Error == "" {
179186 data .Data = make ([]interface {}, 0 )
180187 }
188+ _ , isStringMap := data .Data .(map [string ]any )
189+ if isStringMap && ! strings .Contains (path , "schedule" ) && len (data .Data .(map [string ]any )) == 0 && data .Error == "" {
190+ data .Data = make (map [string ]any , 0 )
191+ }
181192
182193 var d []byte
183- if isExtensionsEndpoint {
194+ if isExtensionsLiveEndpoint {
184195 extensionBody := models.ExtensionAPIResponse {
185196 Data : data .Data ,
186197 Pagination : & data .Pagination .Cursor ,
0 commit comments