~cytrogen/masto-fe

45ba9ada3455e5fbce955371bf2aff369e47db54 — Claire 2 years ago 5cd55d8
Fix race condition when reblogging a status (#25016)

1 files changed, 5 insertions(+), 1 deletions(-)

M app/controllers/api/v1/statuses/reblogs_controller.rb
M app/controllers/api/v1/statuses/reblogs_controller.rb => app/controllers/api/v1/statuses/reblogs_controller.rb +5 -1
@@ 2,6 2,8 @@

class Api::V1::Statuses::ReblogsController < Api::BaseController
  include Authorization
  include Redisable
  include Lockable

  before_action -> { doorkeeper_authorize! :write, :'write:statuses' }
  before_action :require_user!


@@ 10,7 12,9 @@ class Api::V1::Statuses::ReblogsController < Api::BaseController
  override_rate_limit_headers :create, family: :statuses

  def create
    @status = ReblogService.new.call(current_account, @reblog, reblog_params)
    with_redis_lock("reblog:#{current_account.id}:#{@reblog.id}") do
      @status = ReblogService.new.call(current_account, @reblog, reblog_params)
    end

    render json: @status, serializer: REST::StatusSerializer
  end