An enabled Find a Tender or mock source with no api_root used to start and then fail on every fetch. Its worker now returns an error naming the missing key before it starts, which stops Run. "fetch once" checks sources.find_a_tender.api_root the same way. TestRunMissingAPIRoot covers both sources, and TestRunLogsSourceErrors sets an api_root so it still tests the zero interval. The section docs and internal/config/README.md say what an empty api_root means.
40 lines
1.1 KiB
Go
40 lines
1.1 KiB
Go
package config
|
|
|
|
import "reflect"
|
|
|
|
// JSCKSourceFindATender is the Find a Tender source's configuration key.
|
|
const JSCKSourceFindATender string = "find_a_tender"
|
|
|
|
// JSCSourceFindATender configures fetching from the Find a Tender
|
|
// OCDS API at APIRoot. Empty: the source fails to start if it is enabled,
|
|
// and `fetch once` fails.
|
|
type JSCSourceFindATender struct {
|
|
JSCSourcesSource
|
|
APIRoot string `cfg:"api_root" default:"https://www.find-tender.service.gov.uk/api/1.0"`
|
|
}
|
|
|
|
// ---------- Section methods (see Section) ----------
|
|
|
|
// Map implements Section.
|
|
func (c JSCSourceFindATender) Map() map[string]any { return mapOf(c) }
|
|
|
|
// Flatten implements Section.
|
|
func (c JSCSourceFindATender) Flatten() map[string]any {
|
|
return flattenOf(JSCKSourceFindATender, c)
|
|
}
|
|
|
|
// TypeOf implements Section.
|
|
func (c JSCSourceFindATender) TypeOf(key string) (reflect.Kind, error) {
|
|
return typeOf(c, key)
|
|
}
|
|
|
|
// ValueOf implements Section.
|
|
func (c JSCSourceFindATender) ValueOf(key string) (any, error) {
|
|
return valueOf(c, key)
|
|
}
|
|
|
|
// SetValue implements Section.
|
|
func (c *JSCSourceFindATender) SetValue(key string, value any) error {
|
|
return setValue(c, key, value)
|
|
}
|