Make unfavouriting async to prevent timeout errors from leaving orphaned records behind
This commit is contained in:
parent
6b67b55cee
commit
0542773bca
3 changed files with 15 additions and 2 deletions
|
@ -83,7 +83,11 @@ class Api::V1::StatusesController < ApiController
|
||||||
end
|
end
|
||||||
|
|
||||||
def unfavourite
|
def unfavourite
|
||||||
@status = UnfavouriteService.new.call(current_user.account, Status.find(params[:id])).status.reload
|
@status = Status.find(params[:id])
|
||||||
|
@favourited_map = { @status.id => false }
|
||||||
|
|
||||||
|
UnfavouriteWorker.perform_async(current_user.account_id, @status.id)
|
||||||
|
|
||||||
render action: :show
|
render action: :show
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -11,4 +11,4 @@ node(:provider_url) { root_url }
|
||||||
node(:cache_age) { 86_400 }
|
node(:cache_age) { 86_400 }
|
||||||
node(:html) { |entry| "<iframe src=\"#{embed_account_stream_entry_url(entry.account, entry)}\" style=\"width: 100%; overflow: hidden\" frameborder=\"0\" width=\"#{@width}\" height=\"#{@height}\" scrolling=\"no\"></iframe>" }
|
node(:html) { |entry| "<iframe src=\"#{embed_account_stream_entry_url(entry.account, entry)}\" style=\"width: 100%; overflow: hidden\" frameborder=\"0\" width=\"#{@width}\" height=\"#{@height}\" scrolling=\"no\"></iframe>" }
|
||||||
node(:width) { @width }
|
node(:width) { @width }
|
||||||
node(:height) { nil }
|
node(:height) { @height }
|
||||||
|
|
9
app/workers/unfavourite_worker.rb
Normal file
9
app/workers/unfavourite_worker.rb
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class UnfavouriteWorker
|
||||||
|
include Sidekiq::Worker
|
||||||
|
|
||||||
|
def perform(account_id, status_id)
|
||||||
|
UnfavouriteService.new.call(Account.find(account_id), Status.find(status_id))
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue