diff options
author | ThibG <thib@sitedethib.com> | 2019-06-05 13:28:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-05 13:28:05 +0200 |
commit | ff74aaca7cd532065f24829a3ac16de809bacf3f (patch) | |
tree | ba851bcad4bf9f657a0c2414ac3befdea9acea15 /app/controllers | |
parent | 58946fef3c05342289c1c50132996fc4fd01cf68 (diff) | |
parent | 02b56c7e1a0fa561af9a85f765ec22eee3053561 (diff) |
Merge pull request #1093 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/api/v1/polls_controller.rb | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/app/controllers/api/v1/polls_controller.rb b/app/controllers/api/v1/polls_controller.rb index 4f4a6858d..031e6d42d 100644 --- a/app/controllers/api/v1/polls_controller.rb +++ b/app/controllers/api/v1/polls_controller.rb @@ -1,13 +1,28 @@ # frozen_string_literal: true class Api::V1::PollsController < Api::BaseController + include Authorization + before_action -> { authorize_if_got_token! :read, :'read:statuses' }, only: :show + before_action :set_poll + before_action :refresh_poll respond_to :json def show + render json: @poll, serializer: REST::PollSerializer, include_results: true + end + + private + + def set_poll @poll = Poll.attached.find(params[:id]) + authorize @poll.status, :show? + rescue Mastodon::NotPermittedError + raise ActiveRecord::RecordNotFound + end + + def refresh_poll ActivityPub::FetchRemotePollService.new.call(@poll, current_account) if user_signed_in? && @poll.possibly_stale? - render json: @poll, serializer: REST::PollSerializer, include_results: true end end |