Service to reblog statuses
This commit is contained in:
parent
c967802c43
commit
42eeecba3f
|
@ -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
|
Loading…
Reference in a new issue