diff options
author | siddharth ravikumar <s@ricketyspace.net> | 2022-06-18 06:19:41 -0400 |
---|---|---|
committer | siddharth ravikumar <s@ricketyspace.net> | 2022-06-18 06:19:41 -0400 |
commit | 43365bd5d8b55e5f490ee96d5b631521735a3ed8 (patch) | |
tree | f70422d29b1b7efa5a7634a7ec905c39c07512ea | |
parent | 9b14bf5641ba8ecee34d9b266864ae198550af5c (diff) |
weather: update `NewWeather`
Add handling to skip duplicate alerts.
-rw-r--r-- | nws/nws.go | 1 | ||||
-rw-r--r-- | version/version.go | 2 | ||||
-rw-r--r-- | weather/weather.go | 5 |
3 files changed, 7 insertions, 1 deletions
@@ -68,6 +68,7 @@ type FeatureProperties struct { } type Feature struct { + Id string Properties FeatureProperties } diff --git a/version/version.go b/version/version.go index 5c048e5..c10a5e0 100644 --- a/version/version.go +++ b/version/version.go @@ -4,4 +4,4 @@ // Peach version. package version -const Version = "0.5.0" +const Version = "0.5.1.dev" diff --git a/weather/weather.go b/weather/weather.go index e001255..7b7161a 100644 --- a/weather/weather.go +++ b/weather/weather.go @@ -121,7 +121,11 @@ func NewWeather(lat, lng float32) (*Weather, error, int) { // Add alerts if they exist. if len(fBundle.Alerts.Features) > 0 { w.Alerts = make([]Alert, 0) + am := make(map[string]bool, 0) // Alerts map. for _, f := range fBundle.Alerts.Features { + if _, ok := am[f.Id]; ok { + continue // Duplicate; skip. + } a := Alert{ Event: f.Properties.Event, Severity: f.Properties.Severity, @@ -129,6 +133,7 @@ func NewWeather(lat, lng float32) (*Weather, error, int) { Instruction: strings.Split(f.Properties.Instruction, "\n\n"), } w.Alerts = append(w.Alerts, a) + am[f.Id] = true } } return w, nil, 200 |