diff options
Diffstat (limited to 'app/services/reblog_service.rb')
-rw-r--r-- | app/services/reblog_service.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/app/services/reblog_service.rb b/app/services/reblog_service.rb new file mode 100644 index 000000000..000ed8ee6 --- /dev/null +++ b/app/services/reblog_service.rb @@ -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 |