status_finder.rb (696B)
- # frozen_string_literal: true
- class StatusFinder
- attr_reader :url
- def initialize(url)
- @url = url
- end
- def status
- verify_action!
- raise ActiveRecord::RecordNotFound unless TagManager.instance.local_url?(url)
- case recognized_params[:controller]
- when 'stream_entries'
- StreamEntry.find(recognized_params[:id]).status
- when 'statuses'
- Status.find(recognized_params[:id])
- else
- raise ActiveRecord::RecordNotFound
- end
- end
- private
- def recognized_params
- Rails.application.routes.recognize_path(url)
- end
- def verify_action!
- unless recognized_params[:action] == 'show'
- raise ActiveRecord::RecordNotFound
- end
- end
- end