refreshBeforeExpiration introduced
This commit is contained in:
parent
b320c395df
commit
f732d0ed44
14
api.go
14
api.go
@ -67,7 +67,7 @@ func NewApi(config ApiConfig) (*Api, error) {
|
||||
return nil, fmt.Errorf("auth token request failed: %s", authTokenResponse.Message)
|
||||
}
|
||||
|
||||
api.expiration = time.Now().Add(time.Duration(authTokenResponse.Result.ExpiresIn-1) * time.Second)
|
||||
api.expiration = time.Now().Add(time.Duration(authTokenResponse.Result.ExpiresIn) * time.Second)
|
||||
api.accessToken = authTokenResponse.Result.AccessToken
|
||||
api.refreshToken = authTokenResponse.Result.RefreshToken
|
||||
|
||||
@ -166,12 +166,18 @@ func (api *Api) AuthToken(authCode string) (*model.AuthTokenResponse, error) {
|
||||
return response, nil
|
||||
}
|
||||
|
||||
func (api *Api) AutoRefresh(ctx context.Context) error {
|
||||
func (api *Api) MustAutoRefresh(ctx context.Context, refreshBeforeExpiration time.Duration) {
|
||||
if err := api.AutoRefresh(ctx, refreshBeforeExpiration); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
func (api *Api) AutoRefresh(ctx context.Context, refreshBeforeExpiration time.Duration) error {
|
||||
for {
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
return nil
|
||||
case <-time.After(time.Until(api.expiration)):
|
||||
case <-time.After(time.Until(api.expiration.Add(-refreshBeforeExpiration))):
|
||||
if err := api.Refresh(); err != nil {
|
||||
return err
|
||||
}
|
||||
@ -206,7 +212,7 @@ func (api *Api) Refresh() error {
|
||||
return err
|
||||
}
|
||||
|
||||
api.expiration = time.Now().Add(time.Duration(response.Result.ExpiresIn-1) * time.Second)
|
||||
api.expiration = time.Now().Add(time.Duration(response.Result.ExpiresIn) * time.Second)
|
||||
api.accessToken = response.Result.AccessToken
|
||||
api.refreshToken = response.Result.RefreshToken
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user