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

master
Bel LaPointe 2022-01-27 18:20:52 -07:00
parent 00368c50ff
commit 64f1488a91
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 { if len(states) == 0 {
return nil, fmt.Errorf("failed to map zipcodes %+v to any states", zips) 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) { func (ntg NTGVision) SearchStates(states []config.State) ([]Job, error) {

39
main.go
View File

@ -313,11 +313,39 @@ func once() error {
} }
func getJobs() ([]broker.Job, error) { func getJobs() ([]broker.Job, error) {
if config.Get().Brokers.UseZips {
return getJobsStates() 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) { func getJobsStates() ([]broker.Job, error) {
states := config.AllStates() 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{} brokers := []broker.Broker{}
if config.Get().Brokers.NTG.Enabled { if config.Get().Brokers.NTG.Enabled {
logtr.Debugf("NTG enabled") logtr.Debugf("NTG enabled")
@ -327,16 +355,7 @@ func getJobsStates() ([]broker.Job, error) {
logtr.Debugf("FastExact enabled") logtr.Debugf("FastExact enabled")
brokers = append(brokers, broker.NewFastExact()) brokers = append(brokers, broker.NewFastExact())
} }
logtr.Debugf("brokers=%+v", brokers) return 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
} }
type recordedJob struct { type recordedJob struct {