hummingbird-me/kitsu-server

View on GitHub
app/chewy/groups_index.rb

Summary

Maintainability
A
0 mins
Test Coverage
C
75%
class GroupsIndex < Chewy::Index
  define_type Group do
    def self.visible_for(user)
      return filter { privacy(:or) == %w[open restricted] } unless user
      members = user.group_members.pluck(:group_id)
      filter { (_id(:or) == members) | (privacy(:or) == %w[open restricted]) }
    end

    def self.sfw
      filter { (nsfw == false) & (category != 'nsfw') }
    end

    field :name
    field :about
    field :locale
    field :tagline
    field :privacy
    field :nsfw
    field :last_activity_at
    field :category, value: ->(g) { g.category.name }
  end
end