* Coverage for fetch remote resource service * Refactor fetch remote resource service * Coverage for search service * Refactor search service
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			689 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			689 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
class FetchRemoteResourceService < BaseService
 | 
						|
  attr_reader :url
 | 
						|
 | 
						|
  def call(url)
 | 
						|
    @url = url
 | 
						|
    process_url unless atom_url.nil?
 | 
						|
  end
 | 
						|
 | 
						|
  private
 | 
						|
 | 
						|
  def process_url
 | 
						|
    case xml_root
 | 
						|
    when 'feed'
 | 
						|
      FetchRemoteAccountService.new.call(atom_url, body)
 | 
						|
    when 'entry'
 | 
						|
      FetchRemoteStatusService.new.call(atom_url, body)
 | 
						|
    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.last
 | 
						|
  end
 | 
						|
 | 
						|
  def xml_root
 | 
						|
    xml_data.root.name
 | 
						|
  end
 | 
						|
 | 
						|
  def xml_data
 | 
						|
    @_xml_data ||= Nokogiri::XML(body, nil, 'utf-8')
 | 
						|
  end
 | 
						|
end
 |