29 lines
873 B
Go
29 lines
873 B
Go
// FILE: internal/sources/nws/forecast_hourly.go
|
|
package nws
|
|
|
|
import (
|
|
"gitea.maximumdirect.net/ejr/feedkit/config"
|
|
"gitea.maximumdirect.net/ejr/weatherfeeder/standards"
|
|
)
|
|
|
|
// HourlyForecastSource polls an NWS hourly forecast endpoint and emits a RAW forecast Event.
|
|
//
|
|
// It intentionally emits the *entire* upstream payload as json.RawMessage and only decodes
|
|
// minimal metadata for Event.EffectiveAt and Event.ID.
|
|
//
|
|
// Output schema (current implementation):
|
|
// - standards.SchemaRawNWSHourlyForecastV1
|
|
type HourlyForecastSource struct {
|
|
*forecastSource
|
|
}
|
|
|
|
func NewHourlyForecastSource(cfg config.SourceConfig) (*HourlyForecastSource, error) {
|
|
const driver = "nws_forecast_hourly"
|
|
src, err := newForecastSource(cfg, driver, standards.SchemaRawNWSHourlyForecastV1)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &HourlyForecastSource{forecastSource: src}, nil
|
|
}
|