Add omitempty to JSON fields in alert, forecast, and observation services
All checks were successful
ci/woodpecker/push/build-image Pipeline was successful

This commit is contained in:
2026-03-17 09:03:23 -05:00
parent 27817f9e43
commit 0d82e5d60e
4 changed files with 104 additions and 37 deletions

View File

@@ -21,13 +21,13 @@ type Response struct {
}
type AlertResponse struct {
Effective *time.Time `json:"effective"`
Expires *time.Time `json:"expires"`
Severity *string `json:"severity"`
Event *string `json:"event"`
Headline *string `json:"headline"`
Instruction *string `json:"instruction"`
Description *string `json:"description"`
Effective *time.Time `json:"effective,omitempty"`
Expires *time.Time `json:"expires,omitempty"`
Severity *string `json:"severity,omitempty"`
Event *string `json:"event,omitempty"`
Headline *string `json:"headline,omitempty"`
Instruction *string `json:"instruction,omitempty"`
Description *string `json:"description,omitempty"`
}
func (s *Service) GetCurrent(ctx context.Context) (Response, error) {

View File

@@ -28,30 +28,30 @@ type PeriodResponse struct {
PeriodIndex int `json:"periodIndex"`
StartTime time.Time `json:"startTime"`
EndTime time.Time `json:"endTime"`
Name *string `json:"name"`
IsDay *bool `json:"isDay"`
Name *string `json:"name,omitempty"`
IsDay *bool `json:"isDay,omitempty"`
ConditionCode int `json:"conditionCode"`
ConditionText *string `json:"conditionText"`
ProviderRawDescription *string `json:"providerRawDescription"`
TextDescription *string `json:"textDescription"`
DetailedText *string `json:"detailedText"`
IconURL *string `json:"iconUrl"`
TemperatureF *float64 `json:"temperatureF"`
TemperatureFMin *float64 `json:"temperatureFMin"`
TemperatureFMax *float64 `json:"temperatureFMax"`
DewpointF *float64 `json:"dewpointF"`
RelativeHumidityPercent *float64 `json:"relativeHumidityPercent"`
WindDirectionDegrees *float64 `json:"windDirectionDegrees"`
WindSpeedMph *float64 `json:"windSpeedMph"`
WindGustMph *float64 `json:"windGustMph"`
BarometricPressurePa *float64 `json:"barometricPressurePa"`
VisibilityMeters *float64 `json:"visibilityMeters"`
ApparentTemperatureF *float64 `json:"apparentTemperatureF"`
CloudCoverPercent *float64 `json:"cloudCoverPercent"`
ProbabilityOfPrecipitationPercent *float64 `json:"probabilityOfPrecipitationPercent"`
PrecipitationAmountMm *float64 `json:"precipitationAmountMm"`
SnowfallDepthMm *float64 `json:"snowfallDepthMm"`
UVIndex *float64 `json:"uvIndex"`
ConditionText *string `json:"conditionText,omitempty"`
ProviderRawDescription *string `json:"providerRawDescription,omitempty"`
TextDescription *string `json:"textDescription,omitempty"`
DetailedText *string `json:"detailedText,omitempty"`
IconURL *string `json:"iconUrl,omitempty"`
TemperatureF *float64 `json:"temperatureF,omitempty"`
TemperatureFMin *float64 `json:"temperatureFMin,omitempty"`
TemperatureFMax *float64 `json:"temperatureFMax,omitempty"`
DewpointF *float64 `json:"dewpointF,omitempty"`
RelativeHumidityPercent *float64 `json:"relativeHumidityPercent,omitempty"`
WindDirectionDegrees *float64 `json:"windDirectionDegrees,omitempty"`
WindSpeedMph *float64 `json:"windSpeedMph,omitempty"`
WindGustMph *float64 `json:"windGustMph,omitempty"`
BarometricPressurePa *float64 `json:"barometricPressurePa,omitempty"`
VisibilityMeters *float64 `json:"visibilityMeters,omitempty"`
ApparentTemperatureF *float64 `json:"apparentTemperatureF,omitempty"`
CloudCoverPercent *float64 `json:"cloudCoverPercent,omitempty"`
ProbabilityOfPrecipitationPercent *float64 `json:"probabilityOfPrecipitationPercent,omitempty"`
PrecipitationAmountMm *float64 `json:"precipitationAmountMm,omitempty"`
SnowfallDepthMm *float64 `json:"snowfallDepthMm,omitempty"`
UVIndex *float64 `json:"uvIndex,omitempty"`
}
func (s *Service) GetByTimestamp(ctx context.Context, ts time.Time) (Response, error) {

View File

@@ -26,18 +26,18 @@ type CurrentResponse struct {
}
type SummaryResponse struct {
TemperatureF *float64 `json:"temperatureF"`
ApparentTemperatureF *float64 `json:"apparentTemperatureF"`
TemperatureF *float64 `json:"temperatureF,omitempty"`
ApparentTemperatureF *float64 `json:"apparentTemperatureF,omitempty"`
WindowMinutes int `json:"windowMinutes"`
}
type ConditionResponse struct {
StationID *string `json:"stationId"`
StationID *string `json:"stationId,omitempty"`
ObservedAt time.Time `json:"observedAt"`
TemperatureF *float64 `json:"temperatureF"`
TextDescription *string `json:"textDescription"`
ProviderRawDescription *string `json:"providerRawDescription"`
ConditionText *string `json:"conditionText"`
TemperatureF *float64 `json:"temperatureF,omitempty"`
TextDescription *string `json:"textDescription,omitempty"`
ProviderRawDescription *string `json:"providerRawDescription,omitempty"`
ConditionText *string `json:"conditionText,omitempty"`
}
func (s *Service) GetCurrent(ctx context.Context) (CurrentResponse, error) {