diff options
author | Starfall <root@starfall.blue> | 2020-03-01 11:49:29 -0600 |
---|---|---|
committer | Starfall <root@starfall.blue> | 2020-03-01 11:49:29 -0600 |
commit | 22a55edc158352003a3953964c9d332a60c86428 (patch) | |
tree | a26bd8374e4b8264dbae815fbfbd3b91ae51450b /app/controllers/api/v1/statuses/bookmarks_controller.rb | |
parent | 5902299384d15249fe4b84b8761d4a49f3c7f6fd (diff) | |
parent | 553a16c6f8a74677336114b6379e1db1d19cb81c (diff) |
Merge branch 'glitch'
Diffstat (limited to 'app/controllers/api/v1/statuses/bookmarks_controller.rb')
-rw-r--r-- | app/controllers/api/v1/statuses/bookmarks_controller.rb | 27 |
1 files changed, 10 insertions, 17 deletions
diff --git a/app/controllers/api/v1/statuses/bookmarks_controller.rb b/app/controllers/api/v1/statuses/bookmarks_controller.rb index bb9729cf5..a7f1eed00 100644 --- a/app/controllers/api/v1/statuses/bookmarks_controller.rb +++ b/app/controllers/api/v1/statuses/bookmarks_controller.rb @@ -5,35 +5,28 @@ class Api::V1::Statuses::BookmarksController < Api::BaseController before_action -> { doorkeeper_authorize! :write, :'write:bookmarks' } before_action :require_user! + before_action :set_status respond_to :json def create - @status = bookmarked_status + current_account.bookmarks.find_or_create_by!(account: current_account, status: @status) render json: @status, serializer: REST::StatusSerializer end def destroy - @status = requested_status - @bookmarks_map = { @status.id => false } + bookmark = current_account.bookmarks.find_by(status: @status) + bookmark&.destroy! - bookmark = Bookmark.find_by!(account: current_user.account, status: @status) - bookmark.destroy! - - render json: @status, serializer: REST::StatusSerializer, relationships: StatusRelationshipsPresenter.new([@status], current_user&.account_id, bookmarks_map: @bookmarks_map) + render json: @status, serializer: REST::StatusSerializer, relationships: StatusRelationshipsPresenter.new([@status], current_account.id, bookmarks_map: { @status.id => false }) end private - def bookmarked_status - authorize_with current_user.account, requested_status, :show? - - bookmark = Bookmark.find_or_create_by!(account: current_user.account, status: requested_status) - - bookmark.status.reload - end - - def requested_status - Status.find(params[:status_id]) + def set_status + @status = Status.find(params[:status_id]) + authorize @status, :show? + rescue Mastodon::NotPermittedError + not_found end end |