diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2016-03-06 12:51:55 +0100 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2016-03-06 12:51:55 +0100 |
commit | c605b828b53165cb0161a1885e03202013b63f52 (patch) | |
tree | a667e98afc79ca3eaa49f46955529f4dc5f2f101 /app/controllers | |
parent | aab330eb2d39711e19753e89ba7ff67521929cf0 (diff) |
Adding routes to follow, unfollow, favourite and reblog (locally known models)
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/accounts_controller.rb | 11 | ||||
-rw-r--r-- | app/controllers/stream_entries_controller.rb | 16 |
2 files changed, 27 insertions, 0 deletions
diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 156926927..9e2e160b2 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -3,6 +3,7 @@ class AccountsController < ApplicationController before_action :set_account before_action :set_webfinger_header + before_action :authenticate_user!, only: [:follow, :unfollow] def show @statuses = @account.statuses.order('id desc').includes(thread: [:account], reblog: [:account], stream_entry: []) @@ -13,6 +14,16 @@ class AccountsController < ApplicationController end end + def follow + current_user.account.follow!(@account) + redirect_to root_path + end + + def unfollow + current_user.account.unfollow!(@account) + redirect_to root_path + end + private def set_account diff --git a/app/controllers/stream_entries_controller.rb b/app/controllers/stream_entries_controller.rb index cbf7bfdff..293cc6d81 100644 --- a/app/controllers/stream_entries_controller.rb +++ b/app/controllers/stream_entries_controller.rb @@ -3,6 +3,8 @@ class StreamEntriesController < ApplicationController 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 @@ -13,6 +15,16 @@ class StreamEntriesController < ApplicationController 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 @@ -22,4 +34,8 @@ class StreamEntriesController < ApplicationController 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 |