diff options
author | Matt Jankowski <mjankowski@thoughtbot.com> | 2017-04-19 07:52:37 -0400 |
---|---|---|
committer | Eugen <eugen@zeonfederated.com> | 2017-04-19 13:52:37 +0200 |
commit | 8bac0350d16cb8e2770c089c91d71f8038404de5 (patch) | |
tree | f5b381319fde16fbe393dbae2cba1691f17aea9a /app/controllers/concerns | |
parent | c0b30c56db36d0064ee7618976ab4e25f7a675fd (diff) |
Restful refactor of accounts/ routes (#2133)
* Add routing specs for accounts followers and following actions * Use more restful route naming for public account follow pages Moves two actions: - accounts#followers to accounts/follower_accounts#index - accounts#following to accounts/following_accounts#index Adds routing spec to ensure prior URLs are preserved.
Diffstat (limited to 'app/controllers/concerns')
-rw-r--r-- | app/controllers/concerns/account_controller_concern.rb | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/app/controllers/concerns/account_controller_concern.rb b/app/controllers/concerns/account_controller_concern.rb new file mode 100644 index 000000000..d36fc8c93 --- /dev/null +++ b/app/controllers/concerns/account_controller_concern.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +module AccountControllerConcern + extend ActiveSupport::Concern + + FOLLOW_PER_PAGE = 12 + + included do + layout 'public' + before_action :set_account + before_action :set_link_headers + before_action :check_account_suspension + end + + private + + def set_account + @account = Account.find_local!(params[:account_username]) + end + + def set_link_headers + response.headers['Link'] = LinkHeader.new( + [ + webfinger_account_link, + atom_account_url_link, + ] + ) + end + + def webfinger_account_link + [ + webfinger_account_url, + [%w(rel lrdd), %w(type application/xrd+xml)], + ] + end + + def atom_account_url_link + [ + account_url(@account, format: 'atom'), + [%w(rel alternate), %w(type application/atom+xml)], + ] + end + + def webfinger_account_url + webfinger_url(resource: @account.to_webfinger_s) + end + + def check_account_suspension + gone if @account.suspended? + end +end |