First version of SmartPlaylists being generated on demand

This commit is contained in:
Deluan
2021-10-17 22:06:09 -04:00
committed by Deluan Quintão
parent c72add516a
commit d21932bd1b
5 changed files with 141 additions and 81 deletions
+16 -2
View File
@@ -22,8 +22,22 @@ import (
//}
type SmartPlaylist model.SmartPlaylist
func (sp SmartPlaylist) AddFilters(sql SelectBuilder) SelectBuilder {
return sql.Where(RuleGroup(sp.RuleGroup)).OrderBy(sp.Order).Limit(uint64(sp.Limit))
func (sp SmartPlaylist) AddCriteria(sql SelectBuilder) SelectBuilder {
sql = sql.Where(RuleGroup(sp.RuleGroup)).Limit(uint64(sp.Limit))
if order := sp.OrderBy(); order != "" {
sql = sql.OrderBy(order)
}
return sql
}
func (sp SmartPlaylist) OrderBy() string {
order := strings.ToLower(sp.Order)
for f, fieldDef := range fieldMap {
if strings.HasPrefix(order, f) {
order = strings.Replace(order, f, fieldDef.dbField, 1)
}
}
return order
}
type fieldDef struct {