diff --git a/internal/adapters/postgres/queries.go b/internal/adapters/postgres/queries.go index 0cc9a43..c03b2eb 100644 --- a/internal/adapters/postgres/queries.go +++ b/internal/adapters/postgres/queries.go @@ -22,7 +22,20 @@ SELECT AVG(dewpoint_c) AS dewpoint_c, AVG(relative_humidity_percent) AS relative_humidity_percent, AVG(wind_speed_kmh) AS wind_speed_kmh, - AVG(wind_direction_degrees) AS wind_direction_degrees, + CASE + WHEN atan2d( + avg(sind(wind_direction_degrees)), + avg(cosd(wind_direction_degrees)) + ) < 0 + THEN atan2d( + avg(sind(wind_direction_degrees)), + avg(cosd(wind_direction_degrees)) + ) + 360.0 + ELSE atan2d( + avg(sind(wind_direction_degrees)), + avg(cosd(wind_direction_degrees)) + ) + END AS wind_direction_degrees, MAX(condition_code) AS condition_code, ( SELECT is_day diff --git a/internal/application/conditions/service.go b/internal/application/conditions/service.go index bc05181..e85deb9 100644 --- a/internal/application/conditions/service.go +++ b/internal/application/conditions/service.go @@ -56,7 +56,6 @@ func (s *Service) GetCurrent(ctx context.Context, unitSystem string) (Response, resp := Response{ RelativeHumidity: summary.RelativeHumidity, WindDirectionDegrees: summary.WindDirectionDegrees, - ConditionCode: summary.ConditionCode, IsDay: summary.IsDay, } if summary.ConditionCode != nil {