added from stores
This commit is contained in:
@@ -45,3 +45,49 @@ func (f StoreFilter) Filter (stores []Store) []Store {
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
type ListingFilter struct{
|
||||
Limit int
|
||||
|
||||
IncludeIds []int
|
||||
ExcludeIds []int
|
||||
|
||||
FromStores []int
|
||||
}
|
||||
|
||||
|
||||
func (f ListingFilter) Filter (listings []Listing) []Listing {
|
||||
result := make([]Listing, 0)
|
||||
|
||||
if len(f.IncludeIds) > 0 {
|
||||
for _, l := range listings {
|
||||
if f.Limit > 0 && len(result) >= f.Limit {
|
||||
break
|
||||
}
|
||||
|
||||
if slices.Contains(f.IncludeIds, l.Id) {
|
||||
result = append(result, l)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for _, l := range listings {
|
||||
if f.Limit > 0 && len(result) >= f.Limit {
|
||||
break
|
||||
}
|
||||
|
||||
|
||||
if slices.Contains(f.ExcludeIds, l.Id) || slices.Contains(f.IncludeIds, l.Id) {
|
||||
continue
|
||||
}
|
||||
|
||||
if len(f.FromStores) > 0 && !slices.Contains(f.FromStores, l.Store.Id) {
|
||||
continue
|
||||
}
|
||||
|
||||
result = append(result, l)
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ type RenderingConfig struct {
|
||||
SearchInputName string
|
||||
|
||||
StoreFilter diyhrt.StoreFilter
|
||||
ListingFilter diyhrt.ListingFilter
|
||||
|
||||
Listings []diyhrt.Listing
|
||||
Stores []diyhrt.Store
|
||||
@@ -44,6 +45,10 @@ func DefaultRenderingConfig() RenderingConfig {
|
||||
Limit: 0,
|
||||
IncludeIds: []int{7},
|
||||
},
|
||||
|
||||
ListingFilter: diyhrt.ListingFilter{
|
||||
FromStores: []int{7},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,6 +59,6 @@ func (rc *RenderingConfig) LoadDiyHrt(listings []diyhrt.Listing) {
|
||||
existingStores[listing.Store.Id] = listing.Store
|
||||
}
|
||||
|
||||
rc.Listings = listings
|
||||
rc.Listings = rc.ListingFilter.Filter(listings)
|
||||
rc.Stores = rc.StoreFilter.Filter(slices.Collect(maps.Values(existingStores)))
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1
|
||||
exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1exit status 1
|
||||
Reference in New Issue
Block a user