Refactor notification filtering behavior definition (#29567)
This commit is contained in:
		
							parent
							
								
									27fd084cb5
								
							
						
					
					
						commit
						b43eaa4517
					
				| @ -29,18 +29,40 @@ class Notification < ApplicationRecord | ||||
|     'Poll' => :poll, | ||||
|   }.freeze | ||||
| 
 | ||||
|   TYPES = %i( | ||||
|     mention | ||||
|     status | ||||
|     reblog | ||||
|     follow | ||||
|     follow_request | ||||
|     favourite | ||||
|     poll | ||||
|     update | ||||
|     admin.sign_up | ||||
|     admin.report | ||||
|   ).freeze | ||||
|   PROPERTIES = { | ||||
|     mention: { | ||||
|       filterable: true, | ||||
|     }.freeze, | ||||
|     status: { | ||||
|       filterable: false, | ||||
|     }.freeze, | ||||
|     reblog: { | ||||
|       filterable: true, | ||||
|     }.freeze, | ||||
|     follow: { | ||||
|       filterable: true, | ||||
|     }.freeze, | ||||
|     follow_request: { | ||||
|       filterable: true, | ||||
|     }.freeze, | ||||
|     favourite: { | ||||
|       filterable: true, | ||||
|     }.freeze, | ||||
|     poll: { | ||||
|       filterable: false, | ||||
|     }.freeze, | ||||
|     update: { | ||||
|       filterable: false, | ||||
|     }.freeze, | ||||
|     'admin.sign_up': { | ||||
|       filterable: false, | ||||
|     }.freeze, | ||||
|     'admin.report': { | ||||
|       filterable: false, | ||||
|     }.freeze, | ||||
|   }.freeze | ||||
| 
 | ||||
|   TYPES = PROPERTIES.keys.freeze | ||||
| 
 | ||||
|   TARGET_STATUS_INCLUDES_BY_TYPE = { | ||||
|     status: :status, | ||||
|  | ||||
| @ -83,7 +83,7 @@ class NotifyService < BaseService | ||||
|     end | ||||
| 
 | ||||
|     def filter? | ||||
|       return false if NON_FILTERABLE_TYPES.include?(@notification.type) | ||||
|       return false unless Notification::PROPERTIES[@notification.type][:filterable] | ||||
|       return false if override_for_sender? | ||||
| 
 | ||||
|       from_limited? || | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user