class StreamEntriesController < ApplicationController layout 'public' before_action :set_account before_action :set_stream_entry before_action :authenticate_user!, only: [:reblog, :favourite] before_action :only_statuses!, only: [:reblog, :favourite] def show @type = @stream_entry.activity_type.downcase respond_to do |format| format.html format.atom end end def reblog ReblogService.new.(current_user.account, @stream_entry.activity) redirect_to root_path end def favourite FavouriteService.new.(current_user.account, @stream_entry.activity) redirect_to root_path end private def set_account @account = Account.find_by!(username: params[:account_username], domain: nil) end def set_stream_entry @stream_entry = @account.stream_entries.find(params[:id]) end def only_statuses! redirect_to root_url unless @stream_entry.activity_type == 'Status' end end