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) process_mentions_service.(status) account.ping!(atom_user_stream_url(id: account.id), [HUB_URL]) status end private def process_mentions_service @process_mentions_service ||= ProcessMentionsService.new end end