@@ -35,7 +35,7 @@ func NewRequest(method string, path string, queryParameters []string, body []byt
35
35
var err error
36
36
var cursor string
37
37
38
- isExtensionsEndpoint := false // https://github.com/twitchdev/twitch-cli/issues/157
38
+ isExtensionsLiveEndpoint := false // https://github.com/twitchdev/twitch-cli/issues/157
39
39
40
40
data .Data = make ([]interface {}, 0 )
41
41
client , err := GetClientInformation ()
@@ -104,20 +104,26 @@ func NewRequest(method string, path string, queryParameters []string, body []byt
104
104
}
105
105
if strings .Contains (u .String (), "extensions/live" ) {
106
106
// https://github.com/twitchdev/twitch-cli/issues/157
107
- isExtensionsEndpoint = true
107
+ isExtensionsLiveEndpoint = true
108
108
var extensionsBody models.ExtensionAPIResponse
109
109
err = json .Unmarshal (resp .Body , & extensionsBody )
110
110
if err != nil {
111
111
fmt .Printf ("Error unmarshalling body: %v" , err )
112
112
return
113
113
}
114
+
115
+ var cursor string = ""
116
+ if extensionsBody .Pagination != nil {
117
+ cursor = * extensionsBody .Pagination
118
+ }
119
+
114
120
apiResponse = models.APIResponse {
115
121
Data : extensionsBody .Data ,
116
122
Status : extensionsBody .Status ,
117
123
Error : extensionsBody .Error ,
118
124
Message : extensionsBody .Message ,
119
125
Pagination : & models.APIPagination {
120
- Cursor : * extensionsBody . Pagination ,
126
+ Cursor : cursor ,
121
127
},
122
128
}
123
129
} else {
@@ -175,12 +181,17 @@ func NewRequest(method string, path string, queryParameters []string, body []byt
175
181
data .Data = make ([]interface {}, 0 )
176
182
}
177
183
// 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 == "" {
179
186
data .Data = make ([]interface {}, 0 )
180
187
}
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
+ }
181
192
182
193
var d []byte
183
- if isExtensionsEndpoint {
194
+ if isExtensionsLiveEndpoint {
184
195
extensionBody := models.ExtensionAPIResponse {
185
196
Data : data .Data ,
186
197
Pagination : & data .Pagination .Cursor ,
0 commit comments