You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
951 B
41 lines
951 B
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
|
|
|