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