forked from mirrors/catstodon
Service to reblog statuses
This commit is contained in:
parent
c967802c43
commit
42eeecba3f
2 changed files with 25 additions and 0 deletions
|
@ -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
|
Loading…
Reference in a new issue