Include never played songs in the "not in the last" operator

This commit is contained in:
Deluan 2021-10-20 09:14:27 -04:00 committed by Deluan Quintão
parent 2b57b98a4b
commit 947353610c
2 changed files with 5 additions and 2 deletions

View File

@ -183,7 +183,10 @@ func (r dateRule) inTheLast(invert bool) (Sqlizer, error) {
}
period := time.Now().Add(time.Duration(-24*v) * time.Hour)
if invert {
return Lt{r.Field: period}, nil
return Or{
Lt{r.Field: period},
Eq{r.Field: nil},
}, nil
}
return Gt{r.Field: period}, nil
}

View File

@ -135,7 +135,7 @@ var _ = Describe("smartPlaylist", func() {
Expect(args).To(ConsistOf(BeTemporally("~", expectedValue, delta)))
},
Entry("in the last", "in the last", "lastPlayed > ?", date.Add(-90*24*time.Hour)),
Entry("not in the last", "not in the last", "lastPlayed < ?", date.Add(-90*24*time.Hour)),
Entry("not in the last", "not in the last", "(lastPlayed < ? OR lastPlayed IS NULL)", date.Add(-90*24*time.Hour)),
)
It("accepts string as the 'in the last' operator value", func() {