forked from pothtonswer/discordmuffin
Add an explicit log and error for when a request is attempted with an unauthorized token that is not a bot token. (#553)
This commit is contained in:
parent
adc6a99c3d
commit
bb42325c3a
1 changed files with 7 additions and 6 deletions
13
restapi.go
13
restapi.go
|
@ -38,6 +38,7 @@ var (
|
||||||
ErrPruneDaysBounds = errors.New("the number of days should be more than or equal to 1")
|
ErrPruneDaysBounds = errors.New("the number of days should be more than or equal to 1")
|
||||||
ErrGuildNoIcon = errors.New("guild does not have an icon set")
|
ErrGuildNoIcon = errors.New("guild does not have an icon set")
|
||||||
ErrGuildNoSplash = errors.New("guild does not have a splash set")
|
ErrGuildNoSplash = errors.New("guild does not have a splash set")
|
||||||
|
ErrUnauthorized = errors.New("HTTP request was unauthorized. This could be because the provided token was not a bot token. Please add \"Bot \" to the start of your token. https://discordapp.com/developers/docs/reference#authentication-example-bot-token-authorization-header")
|
||||||
)
|
)
|
||||||
|
|
||||||
// Request is the same as RequestWithBucketID but the bucket id is the same as the urlStr
|
// Request is the same as RequestWithBucketID but the bucket id is the same as the urlStr
|
||||||
|
@ -129,13 +130,9 @@ func (s *Session) RequestWithLockedBucket(method, urlStr, contentType string, b
|
||||||
}
|
}
|
||||||
|
|
||||||
switch resp.StatusCode {
|
switch resp.StatusCode {
|
||||||
|
|
||||||
case http.StatusOK:
|
case http.StatusOK:
|
||||||
case http.StatusCreated:
|
case http.StatusCreated:
|
||||||
case http.StatusNoContent:
|
case http.StatusNoContent:
|
||||||
|
|
||||||
// TODO check for 401 response, invalidate token if we get one.
|
|
||||||
|
|
||||||
case http.StatusBadGateway:
|
case http.StatusBadGateway:
|
||||||
// Retry sending request if possible
|
// Retry sending request if possible
|
||||||
if sequence < s.MaxRestRetries {
|
if sequence < s.MaxRestRetries {
|
||||||
|
@ -145,7 +142,6 @@ func (s *Session) RequestWithLockedBucket(method, urlStr, contentType string, b
|
||||||
} else {
|
} else {
|
||||||
err = fmt.Errorf("Exceeded Max retries HTTP %s, %s", resp.Status, response)
|
err = fmt.Errorf("Exceeded Max retries HTTP %s, %s", resp.Status, response)
|
||||||
}
|
}
|
||||||
|
|
||||||
case 429: // TOO MANY REQUESTS - Rate limiting
|
case 429: // TOO MANY REQUESTS - Rate limiting
|
||||||
rl := TooManyRequests{}
|
rl := TooManyRequests{}
|
||||||
err = json.Unmarshal(response, &rl)
|
err = json.Unmarshal(response, &rl)
|
||||||
|
@ -161,7 +157,12 @@ func (s *Session) RequestWithLockedBucket(method, urlStr, contentType string, b
|
||||||
// this method can cause longer delays than required
|
// this method can cause longer delays than required
|
||||||
|
|
||||||
response, err = s.RequestWithLockedBucket(method, urlStr, contentType, b, s.Ratelimiter.LockBucketObject(bucket), sequence)
|
response, err = s.RequestWithLockedBucket(method, urlStr, contentType, b, s.Ratelimiter.LockBucketObject(bucket), sequence)
|
||||||
|
case http.StatusUnauthorized:
|
||||||
|
if strings.Index(s.Token, "Bot ") != 0 {
|
||||||
|
s.log(LogInformational, ErrUnauthorized.Error())
|
||||||
|
err = ErrUnauthorized
|
||||||
|
}
|
||||||
|
fallthrough
|
||||||
default: // Error condition
|
default: // Error condition
|
||||||
err = newRestError(req, resp, response)
|
err = newRestError(req, resp, response)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue