Service to reblog statuses
This commit is contained in:
		@@ -1,4 +1,9 @@
 | 
				
			|||||||
class PostStatusService < BaseService
 | 
					class PostStatusService < BaseService
 | 
				
			||||||
 | 
					  # Post a text status update, fetch and notify remote users mentioned
 | 
				
			||||||
 | 
					  # @param [Account] account Account from which to post
 | 
				
			||||||
 | 
					  # @param [String] text Message
 | 
				
			||||||
 | 
					  # @param [Status] in_reply_to Optional status to reply to
 | 
				
			||||||
 | 
					  # @return [Status]
 | 
				
			||||||
  def call(account, text, in_reply_to = nil)
 | 
					  def call(account, text, in_reply_to = nil)
 | 
				
			||||||
    status = account.statuses.create!(text: text, thread: in_reply_to)
 | 
					    status = account.statuses.create!(text: text, thread: in_reply_to)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -14,6 +19,8 @@ class PostStatusService < BaseService
 | 
				
			|||||||
      next if mentioned_account.local?
 | 
					      next if mentioned_account.local?
 | 
				
			||||||
      send_interaction_service.(status.stream_entry, mentioned_account)
 | 
					      send_interaction_service.(status.stream_entry, mentioned_account)
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    status
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private
 | 
					  private
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										18
									
								
								app/services/reblog_service.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								app/services/reblog_service.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					class ReblogService < BaseService
 | 
				
			||||||
 | 
					  # Reblog a status and notify its remote author
 | 
				
			||||||
 | 
					  # @param [Account] account Account to reblog from
 | 
				
			||||||
 | 
					  # @param [Status] reblogged_status Status to be reblogged
 | 
				
			||||||
 | 
					  # @return [Status]
 | 
				
			||||||
 | 
					  def call(account, reblogged_status)
 | 
				
			||||||
 | 
					    reblog = account.statuses.create!(reblog: reblogged_status, text: '')
 | 
				
			||||||
 | 
					    return reblog if reblogged_status.local?
 | 
				
			||||||
 | 
					    send_interaction_service.(reblog.stream_entry, reblogged_status.account)
 | 
				
			||||||
 | 
					    reblog
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def send_interaction_service
 | 
				
			||||||
 | 
					    @send_interaction_service ||= SendInteractionService.new
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
		Reference in New Issue
	
	Block a user