Simplify logic using new group notification settings method

This commit is contained in:
Wei-Meng Lee 2019-04-26 23:33:29 +08:00
parent 03e08ab775
commit f72383066d
1 changed files with 5 additions and 17 deletions

View File

@ -156,23 +156,11 @@ class NotificationRecipient
# Returns the notification_setting of the lowest group in hierarchy with non global level
def closest_non_global_group_notification_settting
return unless @group
return if indexed_group_notification_settings.empty?
notification_setting = nil
@group.self_and_ancestors_ids.each do |id|
notification_setting = indexed_group_notification_settings[id]
break if notification_setting
end
notification_setting
end
def indexed_group_notification_settings
strong_memoize(:indexed_group_notification_settings) do
@group.notification_settings.where(user_id: user.id)
.where.not(level: NotificationSetting.levels[:global])
.index_by(&:source_id)
end
@group
.notification_settings(hierarchy_order: :asc)
.where(user: user)
.where.not(level: NotificationSetting.levels[:global])
.first
end
end