states are explicit
parent
e19cd7095d
commit
5406250af3
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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))
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
8
main.go
8
main.go
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue