Refactored the application structure to better separate concerns between files and packages
Some checks failed
ci/woodpecker/push/build-image Pipeline failed
Some checks failed
ci/woodpecker/push/build-image Pipeline failed
This commit is contained in:
49
internal/adapters/outbound/postgres/forecast_mapper.go
Normal file
49
internal/adapters/outbound/postgres/forecast_mapper.go
Normal file
@@ -0,0 +1,49 @@
|
||||
// forecast_mapper.go maps forecast rows into weather model payloads.
|
||||
// Layer: adapters/outbound/postgres forecast feature.
|
||||
package postgres
|
||||
|
||||
import "gitea.maximumdirect.net/ejr/weatherfeeder/model"
|
||||
|
||||
func mapForecastParentRow(row forecastParentRow) model.WeatherForecastRun {
|
||||
return model.WeatherForecastRun{
|
||||
LocationID: stringValue(row.LocationID),
|
||||
LocationName: stringValue(row.LocationName),
|
||||
IssuedAt: row.IssuedAt.UTC(),
|
||||
UpdatedAt: timePtr(row.UpdatedAt),
|
||||
Product: model.ForecastProduct(row.Product),
|
||||
Latitude: float64Ptr(row.Latitude),
|
||||
Longitude: float64Ptr(row.Longitude),
|
||||
ElevationMeters: float64Ptr(row.ElevationMeters),
|
||||
}
|
||||
}
|
||||
|
||||
func mapForecastPeriodRow(row forecastPeriodRow) model.WeatherForecastPeriod {
|
||||
return model.WeatherForecastPeriod{
|
||||
StartTime: row.StartTime.UTC(),
|
||||
EndTime: row.EndTime.UTC(),
|
||||
Name: stringValue(row.Name),
|
||||
IsDay: boolPtr(row.IsDay),
|
||||
ConditionCode: model.WMOCode(row.ConditionCode),
|
||||
ConditionText: stringValue(row.ConditionText),
|
||||
ProviderRawDescription: stringValue(row.ProviderRawDescription),
|
||||
TextDescription: stringValue(row.TextDescription),
|
||||
DetailedText: stringValue(row.DetailedText),
|
||||
IconURL: stringValue(row.IconURL),
|
||||
TemperatureC: float64Ptr(row.TemperatureC),
|
||||
TemperatureCMin: float64Ptr(row.TemperatureCMin),
|
||||
TemperatureCMax: float64Ptr(row.TemperatureCMax),
|
||||
DewpointC: float64Ptr(row.DewpointC),
|
||||
RelativeHumidityPercent: float64Ptr(row.RelativeHumidityPercent),
|
||||
WindDirectionDegrees: float64Ptr(row.WindDirectionDegrees),
|
||||
WindSpeedKmh: float64Ptr(row.WindSpeedKmh),
|
||||
WindGustKmh: float64Ptr(row.WindGustKmh),
|
||||
BarometricPressurePa: float64Ptr(row.BarometricPressurePa),
|
||||
VisibilityMeters: float64Ptr(row.VisibilityMeters),
|
||||
ApparentTemperatureC: float64Ptr(row.ApparentTemperatureC),
|
||||
CloudCoverPercent: float64Ptr(row.CloudCoverPercent),
|
||||
ProbabilityOfPrecipitationPercent: float64Ptr(row.ProbabilityOfPrecipitationPercent),
|
||||
PrecipitationAmountMm: float64Ptr(row.PrecipitationAmountMM),
|
||||
SnowfallDepthMM: float64Ptr(row.SnowfallDepthMM),
|
||||
UVIndex: float64Ptr(row.UVIndex),
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user