about summary refs log tree commit diff
path: root/app/services/fetch_remote_resource_service.rb
diff options
context:
space:
mode:
authorAkihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>2018-01-22 22:24:22 +0900
committerEugen Rochko <eugen@zeonfederated.com>2018-01-22 14:24:22 +0100
commit17cecd75cadfd9914ffc233de01d41204ef7802c (patch)
tree3b8a6532283b18cddc92c48cede5a81246a26983 /app/services/fetch_remote_resource_service.rb
parent8cc65cde274055a8c6e89a0de2d8811880d4b55d (diff)
Rename FetchRemoteResourceService to ResolveURLService (#6328)
The service used to be named FetchRemoteResourceService resolves local
URL as well.
Diffstat (limited to 'app/services/fetch_remote_resource_service.rb')
-rw-r--r--app/services/fetch_remote_resource_service.rb90
1 files changed, 0 insertions, 90 deletions
diff --git a/app/services/fetch_remote_resource_service.rb b/app/services/fetch_remote_resource_service.rb
deleted file mode 100644
index 6d40796f2..000000000
--- a/app/services/fetch_remote_resource_service.rb
+++ /dev/null
@@ -1,90 +0,0 @@
-# frozen_string_literal: true
-
-class FetchRemoteResourceService < BaseService
-  include JsonLdHelper
-
-  attr_reader :url
-
-  def call(url)
-    @url = url
-
-    return process_local_url if local_url?
-
-    process_url unless fetched_atom_feed.nil?
-  end
-
-  private
-
-  def process_url
-    case type
-    when 'Person'
-      FetchRemoteAccountService.new.call(atom_url, body, protocol)
-    when 'Note'
-      FetchRemoteStatusService.new.call(atom_url, body, protocol)
-    end
-  end
-
-  def fetched_atom_feed
-    @_fetched_atom_feed ||= FetchAtomService.new.call(url)
-  end
-
-  def atom_url
-    fetched_atom_feed.first
-  end
-
-  def body
-    fetched_atom_feed.second[:prefetched_body]
-  end
-
-  def protocol
-    fetched_atom_feed.third
-  end
-
-  def type
-    return json_data['type'] if protocol == :activitypub
-
-    case xml_root
-    when 'feed'
-      'Person'
-    when 'entry'
-      'Note'
-    end
-  end
-
-  def json_data
-    @_json_data ||= body_to_json(body)
-  end
-
-  def xml_root
-    xml_data.root.name
-  end
-
-  def xml_data
-    @_xml_data ||= Nokogiri::XML(body, nil, 'utf-8')
-  end
-
-  def local_url?
-    TagManager.instance.local_url?(@url)
-  end
-
-  def process_local_url
-    recognized_params = Rails.application.routes.recognize_path(@url)
-
-    return unless recognized_params[:action] == 'show'
-
-    if recognized_params[:controller] == 'stream_entries'
-      status = StreamEntry.find_by(id: recognized_params[:id])&.status
-      check_local_status(status)
-    elsif recognized_params[:controller] == 'statuses'
-      status = Status.find_by(id: recognized_params[:id])
-      check_local_status(status)
-    elsif recognized_params[:controller] == 'accounts'
-      Account.find_local(recognized_params[:username])
-    end
-  end
-
-  def check_local_status(status)
-    return if status.nil?
-    status if status.public_visibility? || status.unlisted_visibility?
-  end
-end