main will search zips if Broker.UseZips, ntg does its own filtering by city-state dist from search-zips

Bel LaPointe 2022-01-27 18:20:52 -07:00
parent d2cf8c74a2
commit bb8e2a18ef
2 changed files with 45 additions and 12 deletions

View File

@ -204,7 +204,21 @@ func (ntg NTGVision) SearchZips(zips []string) ([]Job, error) {
if len(states) == 0 {
return nil, fmt.Errorf("failed to map zipcodes %+v to any states", zips)
}
return ntg.SearchStates(states)
jobs, err := ntg.SearchStates(states)
if err != nil {
return nil, err
}
for i := len(jobs) - 1; i >= 0; i-- {
ok := false
for _, z := range zips {
ok = ok || zip.Get(z).MilesTo(zip.FromCityState(jobs[i].Pickup.City, jobs[i].Pickup.State)) <= radius
}
if !ok {
jobs[i], jobs[len(jobs)-1] = jobs[len(jobs)-1], jobs[i]
jobs = jobs[:len(jobs)-1]
}
}
return jobs, nil
}
func (ntg NTGVision) SearchStates(states []config.State) ([]Job, error) {

41
main.go
View File

@ -313,11 +313,39 @@ func once() error {
}
func getJobs() ([]broker.Job, error) {
return getJobsStates()
if config.Get().Brokers.UseZips {
return getJobsStates()
}
return getJobsZips()
}
func getJobsZips() ([]broker.Job, error) {
zips := config.AllZips()
jobs := []broker.Job{}
for _, broker := range getBrokers() {
somejobs, err := broker.SearchZips(zips)
if err != nil {
return nil, err
}
jobs = append(jobs, somejobs...)
}
return jobs, nil
}
func getJobsStates() ([]broker.Job, error) {
states := config.AllStates()
jobs := []broker.Job{}
for _, broker := range getBrokers() {
somejobs, err := broker.SearchStates(states)
if err != nil {
return nil, err
}
jobs = append(jobs, somejobs...)
}
return jobs, nil
}
func getBrokers() []broker.Broker {
brokers := []broker.Broker{}
if config.Get().Brokers.NTG.Enabled {
logtr.Debugf("NTG enabled")
@ -327,16 +355,7 @@ func getJobsStates() ([]broker.Job, error) {
logtr.Debugf("FastExact enabled")
brokers = append(brokers, broker.NewFastExact())
}
logtr.Debugf("brokers=%+v", brokers)
jobs := []broker.Job{}
for _, broker := range brokers {
somejobs, err := broker.SearchStates(states)
if err != nil {
return nil, err
}
jobs = append(jobs, somejobs...)
}
return jobs, nil
return brokers
}
type recordedJob struct {