hummingbird-me/kitsu-server

View on GitHub
app/chewy/group_tickets_index.rb

Summary

Maintainability
A
0 mins
Test Coverage
C
71%
class GroupTicketsIndex < Chewy::Index
  define_type GroupTicket do
    def self.visible_for(user)
      return filter { _id == false } unless user
      members = GroupMember.with_permission(:tickets).for_user(user)
      groups = members.pluck(:group_id)
      filter { (group_id(:or) == groups) | (user_id == user.id) }
    end

    field :group_id
    field :user_id
    field :user, value: ->(ticket) { ticket.user.name }
    field :assignee, value: ->(ticket) { ticket.assignee&.name }
    field :messages, value: ->(ticket) { ticket.messages.map(&:content) }
    field :status
    field :created_at
  end
end