Fix reblogged/favourited caching; add API endpoints for who favd/reblogged status
This commit is contained in:
		
							parent
							
								
									c003e70758
								
							
						
					
					
						commit
						e4671adc25
					
				
					 5 changed files with 30 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -2,18 +2,28 @@ class Api::V1::StatusesController < ApiController
 | 
			
		|||
  before_action -> { doorkeeper_authorize! :read }, except: [:create, :destroy, :reblog, :unreblog, :favourite, :unfavourite]
 | 
			
		||||
  before_action -> { doorkeeper_authorize! :write }, only:  [:create, :destroy, :reblog, :unreblog, :favourite, :unfavourite]
 | 
			
		||||
 | 
			
		||||
  respond_to    :json
 | 
			
		||||
  before_action :set_status, only: [:show, :context, :reblogged_by, :favourited_by]
 | 
			
		||||
 | 
			
		||||
  respond_to :json
 | 
			
		||||
 | 
			
		||||
  def show
 | 
			
		||||
    @status = Status.find(params[:id])
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def context
 | 
			
		||||
    @status  = Status.find(params[:id])
 | 
			
		||||
    @context = OpenStruct.new({ ancestors: @status.ancestors, descendants: @status.descendants })
 | 
			
		||||
    set_maps([@status] + @context[:ancestors] + @context[:descendants])
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def reblogged_by
 | 
			
		||||
    @accounts = @status.reblogs.includes(:account).limit(40).map(&:account)
 | 
			
		||||
    render action: :accounts
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def favourited_by
 | 
			
		||||
    @accounts = @status.favourites.includes(:account).limit(40).map(&:account)
 | 
			
		||||
    render action: :accounts
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def create
 | 
			
		||||
    @status = PostStatusService.new.call(current_user.account, params[:status], params[:in_reply_to_id].blank? ? nil : Status.find(params[:in_reply_to_id]), params[:media_ids])
 | 
			
		||||
    render action: :show
 | 
			
		||||
| 
						 | 
				
			
			@ -63,4 +73,10 @@ class Api::V1::StatusesController < ApiController
 | 
			
		|||
    set_maps(@statuses)
 | 
			
		||||
    render action: :index
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def set_status
 | 
			
		||||
    @status = Status.find(params[:id])
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue