only do ntgvision searches 9-4 EST because 417s mean unauth until forced pw reset

v0.5.2
Bel LaPointe 2022-01-27 19:53:50 -07:00
parent 0120fdd0e2
commit e42df54632
2 changed files with 40 additions and 1 deletions

View File

@ -221,7 +221,30 @@ func (ntg NTGVision) SearchZips(zips []string) ([]Job, error) {
return jobs, nil return jobs, nil
} }
func (ntg NTGVision) workingHours(now time.Time) bool {
// TODO assert M-F 9-4 EST
location, err := time.LoadLocation("EST")
if err != nil {
panic(err)
}
now = now.In(location)
switch now.Weekday() {
case time.Sunday, time.Saturday:
return false
}
switch now.Hour() {
case 9, 10, 11, 12, 13, 14, 15, 16:
default:
return false
}
return true
}
func (ntg NTGVision) SearchStates(states []config.State) ([]Job, error) { func (ntg NTGVision) SearchStates(states []config.State) ([]Job, error) {
if ntg.workingHours(time.Now()) {
return nil, nil
}
rc, err := ntg.searcher.searchStates(states) rc, err := ntg.searcher.searchStates(states)
if err != nil { if err != nil {
return nil, err return nil, err
@ -334,7 +357,7 @@ func (ntg NTGVision) _searchStates(states []config.State) (io.ReadCloser, error)
request2, _ := ntg.newRequest(states) request2, _ := ntg.newRequest(states)
requestb, _ := ioutil.ReadAll(request2.Body) requestb, _ := ioutil.ReadAll(request2.Body)
logtr.Debugf("ntg auth bad status: url=%s, status=%v, body=%s, headers=%+v, request=%+v, requestb=%s", request.URL.String(), resp.StatusCode, b, resp.Header, request2, requestb) logtr.Debugf("ntg auth bad status: url=%s, status=%v, body=%s, headers=%+v, request=%+v, requestb=%s", request.URL.String(), resp.StatusCode, b, resp.Header, request2, requestb)
if resp.StatusCode > 400 && resp.StatusCode < 404 { if resp.StatusCode > 400 && resp.StatusCode < 404 || resp.StatusCode == 417 { // TODO wtf is 417 for
logtr.Debugf("ntg auth bad status: err no auth") logtr.Debugf("ntg auth bad status: err no auth")
return nil, ErrNoAuth return nil, ErrNoAuth
} }

16
broker/ntgvision_test.go Normal file
View File

@ -0,0 +1,16 @@
package broker
import (
"testing"
"time"
)
func TestWorkingHoursNTG(t *testing.T) {
ntg := NTGVision{}
if !ntg.workingHours(time.Date(2022, 1, 27, 12, 0, 0, 0, time.Local)) {
t.Fatal("noon MST not ok")
}
if ntg.workingHours(time.Date(2022, 1, 27, 23, 0, 0, 0, time.Local)) {
t.Fatal("midnight MST ok")
}
}