package credentials

import (
	"net/http"
	"time"
)

const defaultInAdvanceScale = 0.95

var hookDo = func(fn func(req *http.Request) (*http.Response, error)) func(req *http.Request) (*http.Response, error) {
	return fn
}

type credentialUpdater struct {
	credentialExpiration int
	lastUpdateTimestamp  int64
	inAdvanceScale       float64
}

func (updater *credentialUpdater) needUpdateCredential() (result bool) {
	if updater.inAdvanceScale == 0 {
		updater.inAdvanceScale = defaultInAdvanceScale
	}
	return time.Now().Unix()-updater.lastUpdateTimestamp >= int64(float64(updater.credentialExpiration)*updater.inAdvanceScale)
}