states are explicit

master
Bel LaPointe 2022-01-27 17:27:08 -07:00
parent e19cd7095d
commit 5406250af3
7 changed files with 25 additions and 21 deletions

View File

@ -20,7 +20,7 @@ var authlimiter = rate.NewLimiter(rate.Limit(1.0/60.0), 1)
var limiter = rate.NewLimiter(rate.Limit(1.0/20.0), 1) var limiter = rate.NewLimiter(rate.Limit(1.0/20.0), 1)
type Broker interface { type Broker interface {
Search([]config.State) ([]Job, error) SearchStates([]config.State) ([]Job, error)
} }
func do(r *http.Request) (*http.Response, error) { func do(r *http.Request) (*http.Response, error) {

View File

@ -38,13 +38,13 @@ func (fe FastExact) WithMock() FastExact {
return fe return fe
} }
func (fe FastExact) Search(states []config.State) ([]Job, error) { func (fe FastExact) SearchStates(states []config.State) ([]Job, error) {
jobs, err := fe.search(states) jobs, err := fe.searchStates(states)
if err == ErrNoAuth { if err == ErrNoAuth {
if err := fe.login(); err != nil { if err := fe.login(); err != nil {
return nil, err return nil, err
} }
jobs, err = fe.search(states) jobs, err = fe.searchStates(states)
} }
return jobs, err return jobs, err
} }
@ -91,7 +91,7 @@ func (fe FastExact) setHeaders(req *http.Request) {
req.Header.Set("Content-Type", "application/x-www-form-urlencoded") req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
} }
func (fe FastExact) search(states []config.State) ([]Job, error) { func (fe FastExact) searchStates(states []config.State) ([]Job, error) {
var jobs []Job var jobs []Job
for _, state := range states { for _, state := range states {
subjobs, err := fe.searchOne(state) subjobs, err := fe.searchOne(state)

View File

@ -34,7 +34,7 @@ func TestFastExactReal(t *testing.T) {
if err := fe.login(); err != nil { if err := fe.login(); err != nil {
t.Fatal(err) t.Fatal(err)
} }
jobs, err := fe.search(states) jobs, err := fe.searchStates(states)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -56,14 +56,14 @@ func TestFastExactLogin(t *testing.T) {
} }
} }
func TestFastExactSearch(t *testing.T) { func TestFastExactSearchStates(t *testing.T) {
logtr.SetLevel(logtr.SOS) logtr.SetLevel(logtr.SOS)
limiter = rate.NewLimiter(rate.Limit(60.0), 1) limiter = rate.NewLimiter(rate.Limit(60.0), 1)
fe := NewFastExact().WithMock() fe := NewFastExact().WithMock()
_ = fe _ = fe
db := storage.NewMap() db := storage.NewMap()
_ = db _ = db
if jobs, err := fe.search([]config.State{config.State("NC"), config.State("SC")}); err != nil { if jobs, err := fe.searchStates([]config.State{config.State("NC"), config.State("SC")}); err != nil {
t.Fatal(err) t.Fatal(err)
} else if len(jobs) != 10 { } else if len(jobs) != 10 {
t.Fatal(len(jobs)) t.Fatal(len(jobs))

View File

@ -15,7 +15,7 @@ import (
type NTGVision struct { type NTGVision struct {
searcher interface { searcher interface {
search(states []config.State) (io.ReadCloser, error) searchStates(states []config.State) (io.ReadCloser, error)
searchJobReadCloser(id int64) (io.ReadCloser, error) searchJobReadCloser(id int64) (io.ReadCloser, error)
} }
} }
@ -187,8 +187,8 @@ func (ntg NTGVision) searchJob(id int64) (ntgVisionJobInfo, error) {
return result, err return result, err
} }
func (ntg NTGVision) Search(states []config.State) ([]Job, error) { func (ntg NTGVision) SearchStates(states []config.State) ([]Job, error) {
rc, err := ntg.searcher.search(states) rc, err := ntg.searcher.searchStates(states)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -226,20 +226,20 @@ func setNTGToken(token string) {
db.Set(getNTGTokenKey(), []byte(token)) db.Set(getNTGTokenKey(), []byte(token))
} }
func (ntg NTGVision) search(states []config.State) (io.ReadCloser, error) { func (ntg NTGVision) searchStates(states []config.State) (io.ReadCloser, error) {
if getNTGToken() == "" { if getNTGToken() == "" {
logtr.Debugf("NTG token is empty, refreshing ntg auth") logtr.Debugf("NTG token is empty, refreshing ntg auth")
if err := ntg.refreshAuth(); err != nil { if err := ntg.refreshAuth(); err != nil {
return nil, err return nil, err
} }
} }
rc, err := ntg._search(states) rc, err := ntg._searchStates(states)
if err == ErrNoAuth { if err == ErrNoAuth {
logtr.Debugf("err no auth on search, refreshing ntg auth") logtr.Debugf("err no auth on search, refreshing ntg auth")
if err := ntg.refreshAuth(); err != nil { if err := ntg.refreshAuth(); err != nil {
return nil, err return nil, err
} }
rc, err = ntg._search(states) rc, err = ntg._searchStates(states)
} }
return rc, err return rc, err
} }
@ -285,7 +285,7 @@ func (ntg NTGVision) _refreshAuth() error {
return nil return nil
} }
func (ntg NTGVision) _search(states []config.State) (io.ReadCloser, error) { func (ntg NTGVision) _searchStates(states []config.State) (io.ReadCloser, error) {
request, err := ntg.newRequest(states) request, err := ntg.newRequest(states)
if err != nil { if err != nil {
return nil, err return nil, err

View File

@ -15,7 +15,7 @@ func NewNTGVisionMock() NTGVisionMock {
return NTGVisionMock{} return NTGVisionMock{}
} }
func (ntgm NTGVisionMock) search(states []config.State) (io.ReadCloser, error) { func (ntgm NTGVisionMock) searchStates(states []config.State) (io.ReadCloser, error) {
path := path.Join(os.Getenv("GOPATH"), "src", "local", "truckstop", "broker", "testdata", "ntgvision_response.json") path := path.Join(os.Getenv("GOPATH"), "src", "local", "truckstop", "broker", "testdata", "ntgvision_response.json")
b, err := ioutil.ReadFile(path) b, err := ioutil.ReadFile(path)
return io.NopCloser(bytes.NewReader(b)), err return io.NopCloser(bytes.NewReader(b)), err

View File

@ -121,11 +121,11 @@ func AllZips() []string {
zipm := map[string]struct{}{} zipm := map[string]struct{}{}
for _, v := range Clients(time.Now().Add(time.Hour * 24 * 365)) { for _, v := range Clients(time.Now().Add(time.Hour * 24 * 365)) {
for _, state := range v.Zips { for _, state := range v.Zips {
statem[state] = struct{}{} zipm[state] = struct{}{}
} }
} }
zips := make([]State, 0, len(statem)+1) zips := make([]string, 0, len(zipm)+1)
for k := range statem { for k := range zipm {
zips = append(zips, k) zips = append(zips, k)
} }
return zips return zips

View File

@ -145,7 +145,7 @@ func matrixrecv() error {
} }
} }
if err := db.Set(key, []byte{'k'}); err != nil { if err := db.Set(key, []byte{'k'}); err != nil {
logtr.Errorf("failed to mark state gathered @%s: %v", key, err) logtr.Errorf("failed to mark pause gathered @%s: %v", key, err)
} }
} }
setNewPauses(pauses) setNewPauses(pauses)
@ -313,6 +313,10 @@ func once() error {
} }
func getJobs() ([]broker.Job, error) { func getJobs() ([]broker.Job, error) {
return getJobsStates()
}
func getJobsStates() ([]broker.Job, error) {
states := config.AllStates() states := config.AllStates()
brokers := []broker.Broker{} brokers := []broker.Broker{}
if config.Get().Brokers.NTG.Enabled { if config.Get().Brokers.NTG.Enabled {
@ -326,7 +330,7 @@ func getJobs() ([]broker.Job, error) {
logtr.Debugf("brokers=%+v", brokers) logtr.Debugf("brokers=%+v", brokers)
jobs := []broker.Job{} jobs := []broker.Job{}
for _, broker := range brokers { for _, broker := range brokers {
somejobs, err := broker.Search(states) somejobs, err := broker.SearchStates(states)
if err != nil { if err != nil {
return nil, err return nil, err
} }