Gab-Social/app/models/preview_card_filter.rb
mgabdev 51fa8f2eb4 Added/Updated admin dashboard tables
• Added:
- New Account filtering
- PreviewCard viewing/sorting/filtering deleting (todo)
- DeletePreviewCardWorker, Service
- Status viewing/sorting/filtering deleting
- ChatMessage viewing/sorting/filtering deleting (todo)
- Account > Follows view

• Updated:
- LinkBlock to sort alphabetically
- Groups to be under "Moderation" instead of "Admin" in navigation.rb
- Status in admin to have group name/link
- Reports reset button
- Group filtering/sorting
- LinkBlock filtering/sorting
- Account now has bio and few more data points in dashboard
2021-01-19 01:25:25 -05:00

31 lines
646 B
Ruby

# frozen_string_literal: true
class PreviewCardFilter
attr_reader :params
def initialize(params)
@params = params
end
def results
scope = PreviewCard
params.each do |key, value|
scope = scope.merge scope_for(key, value)
end
scope
end
def scope_for(key, value)
case key.to_sym
when :title
PreviewCard.where("LOWER(title) LIKE LOWER(?)", "%#{value}%")
when :description
PreviewCard.where("LOWER(description) LIKE LOWER(?)", "%#{value}%")
when :url
PreviewCard.where("LOWER(url) LIKE LOWER(?)", "%#{value}%")
else
raise "Unknown filter: #{key}"
end
end
end