diff --git a/app/services/favourite_service.rb b/app/services/favourite_service.rb index f27145c9613c5bc6e3aa9b93fe118239c123125c..90267af332a4249128d04d1c41ab04f4a92d6eec 100644 --- a/app/services/favourite_service.rb +++ b/app/services/favourite_service.rb @@ -10,6 +10,10 @@ class FavouriteService < BaseService def call(account, status) authorize_with account, status, :show? + favourite = Favourite.find_by(account: account, status: status) + + return favourite unless favourite.nil? + favourite = Favourite.create!(account: account, status: status) if status.local? diff --git a/app/services/reblog_service.rb b/app/services/reblog_service.rb index a3636a283ab6776ce750d73a53725f6b122e1672..ba24b1f9d80a31949ddcc79924ce2e72895c10c8 100644 --- a/app/services/reblog_service.rb +++ b/app/services/reblog_service.rb @@ -13,6 +13,10 @@ class ReblogService < BaseService authorize_with account, reblogged_status, :reblog? + reblog = account.statuses.find_by(reblog: reblogged_status) + + return reblog unless reblog.nil? + reblog = account.statuses.create!(reblog: reblogged_status, text: '') DistributionWorker.perform_async(reblog.id)