@@ -250,9 +250,11 @@ func get(client *http.Client, url string, target interface{}, queryParams map[st
250250 if err != nil {
251251 return nil , err
252252 }
253- resp , err = handleRateLimit (resp , client , req , url , token , queryParams )
254- if err != nil {
255- return nil , err
253+ if resp .StatusCode == http .StatusForbidden {
254+ resp , err = HandleRateLimit (resp , client , req , url , token , queryParams )
255+ if err != nil {
256+ return nil , err
257+ }
256258 }
257259 defer func () {
258260 if err == nil {
@@ -283,22 +285,18 @@ func get(client *http.Client, url string, target interface{}, queryParams map[st
283285 return resp , nil
284286}
285287
286- func handleRateLimit (resp * http.Response , client * http.Client , req * http.Request , url , token string , queryParams map [string ]string ) (* http.Response , error ) {
287- if resp .StatusCode == http .StatusForbidden {
288- remaining := resp .Header .Get ("X-RateLimit-Remaining" )
289- reset := resp .Header .Get ("X-RateLimit-Reset" )
290- if remaining == "0" && reset != "" {
291- resetUnix , err := strconv .ParseInt (reset , 10 , 64 )
292- if err == nil {
293- waitDuration := time .Until (time .Unix (resetUnix , 0 ))
294- if waitDuration > 0 {
295- time .Sleep (waitDuration )
296- return GetWithQueryParamsAndCustomRequest (client , req , url , token , tokenFormat , queryParams ) // Indicate to retry
297- }
298- } else {
299- return resp , err
288+ func HandleRateLimit (resp * http.Response , client * http.Client , req * http.Request , url , token string , queryParams map [string ]string ) (* http.Response , error ) {
289+ remaining := resp .Header .Get ("X-RateLimit-Remaining" )
290+ reset := resp .Header .Get ("X-RateLimit-Reset" )
291+ if remaining == "0" && reset != "" {
292+ resetUnix , err := strconv .ParseInt (reset , 10 , 64 )
293+ if err == nil {
294+ waitDuration := time .Until (time .Unix (resetUnix , 0 ))
295+ if waitDuration > 0 {
296+ time .Sleep (waitDuration )
297+ return GetWithQueryParamsAndCustomRequest (client , req , url , token , tokenFormat , queryParams ) // Indicate to retry
300298 }
301299 }
302300 }
303- return resp , nil // Not rate limited
301+ return resp , nil
304302}
0 commit comments