| 
									
										
										
										
											2016-11-15 15:56:29 +00:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-03 16:17:06 +00:00
										 |  |  | class BlockService < BaseService | 
					
						
							| 
									
										
										
										
											2017-02-11 01:12:05 +00:00
										 |  |  |   include StreamEntryRenderer | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-03 16:17:06 +00:00
										 |  |  |   def call(account, target_account) | 
					
						
							|  |  |  |     return if account.id == target_account.id | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     UnfollowService.new.call(account, target_account) if account.following?(target_account) | 
					
						
							| 
									
										
										
										
											2016-12-22 20:34:19 +00:00
										 |  |  |     UnfollowService.new.call(target_account, account) if target_account.following?(account) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-02 11:17:51 +00:00
										 |  |  |     block = account.block!(target_account) | 
					
						
							| 
									
										
										
										
											2016-12-22 20:34:19 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-24 20:40:41 +00:00
										 |  |  |     BlockWorker.perform_async(account.id, target_account.id) | 
					
						
							| 
									
										
										
										
											2017-02-11 23:48:53 +00:00
										 |  |  |     NotificationWorker.perform_async(build_xml(block), account.id, target_account.id) unless target_account.local? | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   private | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def build_xml(block) | 
					
						
							| 
									
										
										
										
											2017-04-07 03:56:56 +00:00
										 |  |  |     AtomSerializer.render(AtomSerializer.new.block_salmon(block)) | 
					
						
							| 
									
										
										
										
											2016-10-03 16:17:06 +00:00
										 |  |  |   end | 
					
						
							|  |  |  | end |