diff --git a/broker/ntgvision.go b/broker/ntgvision.go index 0c53798..9cfbc72 100644 --- a/broker/ntgvision.go +++ b/broker/ntgvision.go @@ -239,7 +239,11 @@ func (ntg NTGVision) workingHours(now time.Time) bool { func (ntg NTGVision) SearchStates(states []config.State) ([]Job, error) { if !ntg.workingHours(time.Now()) { - return nil, nil + lastNtgB, _ := config.Get().DB().Get("ntg_last_search_states") + var jobs []Job + json.Unmarshal(lastNtgB, &jobs) + logtr.Verbosef("ntg.SearchStates: outside of working hours so returning ntg_last_search_states: %+v", jobs) + return jobs, nil } rc, err := ntg.searcher.searchStates(states) @@ -257,12 +261,22 @@ func (ntg NTGVision) SearchStates(states []config.State) ([]Job, error) { var ntgjobs []ntgVisionJob err = json.Unmarshal(b, &ntgjobs) + if err != nil { + return nil, err + } jobs := make([]Job, len(ntgjobs)) for i := range jobs { jobs[i] = ntgjobs[i].Job() } - return jobs, err + + jobsB, err := json.Marshal(jobs) + if err == nil { + config.Get().DB().Set("ntg_last_search_states", jobsB) + logtr.Verbosef("ntg.SearchStates: in working hours so setting ntg_last_search_states: %+v", jobs) + } + + return jobs, nil } func getNTGTokenKey() string {