Added support for rounding of values by default in API responses
All checks were successful
ci/woodpecker/push/build-image Pipeline was successful
All checks were successful
ci/woodpecker/push/build-image Pipeline was successful
This commit is contained in:
@@ -28,7 +28,7 @@ type WeatherObservationUS struct {
|
||||
PresentWeather []model.PresentWeather `json:"presentWeather,omitempty" xml:"presentWeather,omitempty"`
|
||||
}
|
||||
|
||||
func ObservationPayload(obs *model.WeatherObservation, units Units) any {
|
||||
func ObservationPayload(obs *model.WeatherObservation, units Units, precision int) any {
|
||||
if obs == nil {
|
||||
return nil
|
||||
}
|
||||
@@ -40,18 +40,37 @@ func ObservationPayload(obs *model.WeatherObservation, units Units) any {
|
||||
ConditionCode: obs.ConditionCode,
|
||||
IsDay: copyBoolPtr(obs.IsDay),
|
||||
TextDescription: obs.TextDescription,
|
||||
TemperatureF: celsiusToFahrenheitPtr(obs.TemperatureC),
|
||||
DewpointF: celsiusToFahrenheitPtr(obs.DewpointC),
|
||||
WindDirectionDegrees: copyFloat64Ptr(obs.WindDirectionDegrees),
|
||||
WindSpeedMph: scalePtr(obs.WindSpeedKmh, kmhToMphFactor),
|
||||
WindGustMph: scalePtr(obs.WindGustKmh, kmhToMphFactor),
|
||||
BarometricPressureInHg: scalePtr(obs.BarometricPressurePa, paToInHgFactor),
|
||||
VisibilityMiles: scalePtr(obs.VisibilityMeters, metersToMilesFactor),
|
||||
RelativeHumidityPercent: copyFloat64Ptr(obs.RelativeHumidityPercent),
|
||||
ApparentTemperatureF: celsiusToFahrenheitPtr(obs.ApparentTemperatureC),
|
||||
TemperatureF: roundedPtr(celsiusToFahrenheitPtr(obs.TemperatureC), precision),
|
||||
DewpointF: roundedPtr(celsiusToFahrenheitPtr(obs.DewpointC), precision),
|
||||
WindDirectionDegrees: roundedPtr(copyFloat64Ptr(obs.WindDirectionDegrees), precision),
|
||||
WindSpeedMph: roundedPtr(scalePtr(obs.WindSpeedKmh, kmhToMphFactor), precision),
|
||||
WindGustMph: roundedPtr(scalePtr(obs.WindGustKmh, kmhToMphFactor), precision),
|
||||
BarometricPressureInHg: roundedPtr(scalePtr(obs.BarometricPressurePa, paToInHgFactor), precision),
|
||||
VisibilityMiles: roundedPtr(scalePtr(obs.VisibilityMeters, metersToMilesFactor), precision),
|
||||
RelativeHumidityPercent: roundedPtr(copyFloat64Ptr(obs.RelativeHumidityPercent), precision),
|
||||
ApparentTemperatureF: roundedPtr(celsiusToFahrenheitPtr(obs.ApparentTemperatureC), precision),
|
||||
PresentWeather: append([]model.PresentWeather(nil), obs.PresentWeather...),
|
||||
}
|
||||
return converted
|
||||
}
|
||||
return obs
|
||||
|
||||
rounded := model.WeatherObservation{
|
||||
StationID: obs.StationID,
|
||||
StationName: obs.StationName,
|
||||
Timestamp: obs.Timestamp,
|
||||
ConditionCode: obs.ConditionCode,
|
||||
IsDay: copyBoolPtr(obs.IsDay),
|
||||
TextDescription: obs.TextDescription,
|
||||
TemperatureC: roundedPtr(copyFloat64Ptr(obs.TemperatureC), precision),
|
||||
DewpointC: roundedPtr(copyFloat64Ptr(obs.DewpointC), precision),
|
||||
WindDirectionDegrees: roundedPtr(copyFloat64Ptr(obs.WindDirectionDegrees), precision),
|
||||
WindSpeedKmh: roundedPtr(copyFloat64Ptr(obs.WindSpeedKmh), precision),
|
||||
WindGustKmh: roundedPtr(copyFloat64Ptr(obs.WindGustKmh), precision),
|
||||
BarometricPressurePa: roundedPtr(copyFloat64Ptr(obs.BarometricPressurePa), precision),
|
||||
VisibilityMeters: roundedPtr(copyFloat64Ptr(obs.VisibilityMeters), precision),
|
||||
RelativeHumidityPercent: roundedPtr(copyFloat64Ptr(obs.RelativeHumidityPercent), precision),
|
||||
ApparentTemperatureC: roundedPtr(copyFloat64Ptr(obs.ApparentTemperatureC), precision),
|
||||
PresentWeather: append([]model.PresentWeather(nil), obs.PresentWeather...),
|
||||
}
|
||||
return &rounded
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user