diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2018-08-09 09:56:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-09 09:56:53 +0200 |
commit | f2404de871f0bdfda5c9aeeeb4c6c4d10a8da8ab (patch) | |
tree | f45577d1fe26ea56f7323b940f506f8875d7344e /app/controllers/api | |
parent | 80176a3814abad7f5c9023f97b5d4d82b73c089d (diff) |
Public profile endorsements (accounts picked by profile owner) (#8146)
Diffstat (limited to 'app/controllers/api')
-rw-r--r-- | app/controllers/api/v1/accounts/pins_controller.rb | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/app/controllers/api/v1/accounts/pins_controller.rb b/app/controllers/api/v1/accounts/pins_controller.rb new file mode 100644 index 000000000..0a0239c42 --- /dev/null +++ b/app/controllers/api/v1/accounts/pins_controller.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +class Api::V1::Accounts::PinsController < Api::BaseController + include Authorization + + before_action -> { doorkeeper_authorize! :write, :'write:accounts' } + before_action :require_user! + before_action :set_account + + respond_to :json + + def create + AccountPin.create!(account: current_account, target_account: @account) + render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships_presenter + end + + def destroy + pin = AccountPin.find_by(account: current_account, target_account: @account) + pin&.destroy! + render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships_presenter + end + + private + + def set_account + @account = Account.find(params[:account_id]) + end + + def relationships_presenter + AccountRelationshipsPresenter.new([@account.id], current_user.account_id) + end +end |