()
| 623 | } |
| 624 | |
| 625 | func (s *Store) descriptions() (frequencyPlanList, error) { |
| 626 | s.descriptionsMu.Lock() |
| 627 | defer s.descriptionsMu.Unlock() |
| 628 | if s.descriptionsCache != nil { |
| 629 | return s.descriptionsCache, nil |
| 630 | } |
| 631 | if time.Since(s.descriptionsFetchErrorTime) < yamlFetchErrorCache { |
| 632 | return nil, s.descriptionsFetchError |
| 633 | } |
| 634 | descriptions, err := s.fetchDescriptions() |
| 635 | if err != nil { |
| 636 | s.descriptionsFetchError = err |
| 637 | s.descriptionsFetchErrorTime = time.Now() |
| 638 | return nil, err |
| 639 | } |
| 640 | s.descriptionsFetchErrorTime = time.Time{} |
| 641 | s.descriptionsFetchError = nil |
| 642 | s.descriptionsCache = descriptions |
| 643 | return descriptions, nil |
| 644 | } |
| 645 | |
| 646 | var ( |
| 647 | errNotConfigured = errors.Define("not_configured", "frequency plans not configured") |
no test coverage detected