Service to reblog statuses
This commit is contained in:
		@@ -1,4 +1,9 @@
 | 
			
		||||
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)
 | 
			
		||||
    status = account.statuses.create!(text: text, thread: in_reply_to)
 | 
			
		||||
 | 
			
		||||
@@ -14,6 +19,8 @@ class PostStatusService < BaseService
 | 
			
		||||
      next if mentioned_account.local?
 | 
			
		||||
      send_interaction_service.(status.stream_entry, mentioned_account)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    status
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  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