From d361c2164f342555f6dd39bac45c2df59ff706ca Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Tue, 11 Jan 2022 22:58:06 -0500 Subject: [PATCH] move limiting into foo --- broker/broker.go | 11 +++++++++++ broker/ntgvision.go | 8 ++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/broker/broker.go b/broker/broker.go index ed67603..38fea0a 100644 --- a/broker/broker.go +++ b/broker/broker.go @@ -1,7 +1,10 @@ package broker import ( + "context" "local/truckstop/config" + "net/http" + "strings" "golang.org/x/time/rate" ) @@ -15,3 +18,11 @@ var limiter = rate.NewLimiter(rate.Limit(1.0/20.0), 1) type Broker interface { Search([]config.State) ([]Job, error) } + +func do(r *http.Request) (*http.Response, error) { + limiter.Wait(context.Background()) + if strings.Contains(strings.ToLower(r.URL.Path), "login") { + authlimiter.Wait(context.Background()) + } + return http.DefaultClient.Do(r) +} diff --git a/broker/ntgvision.go b/broker/ntgvision.go index a83f1e5..e35c878 100644 --- a/broker/ntgvision.go +++ b/broker/ntgvision.go @@ -2,7 +2,6 @@ package broker import ( "bytes" - "context" "encoding/json" "errors" "fmt" @@ -110,8 +109,7 @@ func (ntg NTGVision) refreshAuth() error { return err } setNTGHeaders(request) - authlimiter.Wait(context.Background()) - resp, err := http.DefaultClient.Do(request) + resp, err := do(request) if err != nil { return err } @@ -140,9 +138,7 @@ func (ntg NTGVision) _search(states []config.State) (io.ReadCloser, error) { if err != nil { return nil, err } - c := http.Client{Timeout: time.Minute} - limiter.Wait(context.Backgroud()) - resp, err := c.Do(request) + resp, err := do(request) if err != nil { return nil, err }