Skip to content

Commit

Permalink
Better request error handling
Browse files Browse the repository at this point in the history
  • Loading branch information
Davincible committed Aug 21, 2021
1 parent 1901e36 commit 1cd30c5
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 12 deletions.
3 changes: 3 additions & 0 deletions broadcasts.go
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,9 @@ func (br *Broadcast) GetLiveChaining() ([]*Broadcast, error) {
if err != nil {
return nil, err
}
for _, br := range resp.Broadcasts {
br.setValues(insta)
}
return resp.Broadcasts, nil
}

Expand Down
1 change: 1 addition & 0 deletions const.go
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,7 @@ var (
ErrInvalidTab = errors.New("Invalid tab, please select top or recent")
ErrNoMore = errors.New("No more posts availible, page end has been reached")
ErrNotHighlight = errors.New("Unable to sync, Reel is not of type highlight")
ErrMediaDeleted = errors.New("Sorry, this media has been deleted")

// Misc
ErrByteIndexNotFound = errors.New("Failed to index byte slice, delim not found")
Expand Down
20 changes: 8 additions & 12 deletions request.go
Original file line number Diff line number Diff line change
Expand Up @@ -221,19 +221,14 @@ func (insta *Instagram) sendRequest(o *reqOptions) (body []byte, h http.Header,
return nil, nil, err
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
return nil, nil, fmt.Errorf(
"Status: '%s', Status Code: '%d', Err: '%v'",
resp.Status,
resp.StatusCode,
err,
)
}

body, err = ioutil.ReadAll(resp.Body)
if err == nil {
err = isError(resp.StatusCode, body, resp.Status, o.Endpoint)
}
if err != nil {
return nil, nil, err
}
insta.extractHeaders(resp.Header)

// Decode gzip encoded responses
Expand Down Expand Up @@ -300,11 +295,12 @@ func isError(code int, body []byte, status, endpoint string) (err error) {
ierr := Error400{Endpoint: endpoint}
err = json.Unmarshal(body, &ierr)
if err == nil {
if ierr.Message == "challenge_required" {
switch ierr.Message {
case "Sorry, this media has been deleted":
return ErrMediaDeleted
case "challenge_required":
return ierr.ChallengeError
}

if err == nil {
default:
return ierr
}
}
Expand Down

0 comments on commit 1cd30c5

Please sign in to comment.