diff --git a/internal/resource/dsa/dsa.go b/internal/resource/dsa/dsa.go index c6cba90..218bfc9 100644 --- a/internal/resource/dsa/dsa.go +++ b/internal/resource/dsa/dsa.go @@ -147,8 +147,10 @@ func (r *Resource) Check() error { return fmt.Errorf("could not parse input from Concourse: %w", err) } + var inputDate time.Time + if len(input.Version.Date) > 0 { - _, err = parseISODate(input.Version.Date) + inputDate, err = parseISODate(input.Version.Date) if err != nil { return fmt.Errorf("could not interpret version from Concourse as date: %w", err) } @@ -164,7 +166,14 @@ func (r *Resource) Check() error { for _, item := range dsaData.Items { parts := strings.SplitN(item.Title, " ", 2) - dates.addVersion(Version{Date: item.Date, DSANumber: parts[0]}) + versionDate, err := parseISODate(item.Date) + if err != nil { + return fmt.Errorf("could not interpret date from RDF feed as date: %w", err) + } + + if inputDate.IsZero() || inputDate.Before(versionDate) { + dates.addVersion(Version{Date: item.Date, DSANumber: parts[0]}) + } } sort.Sort(dates)