From 50660d54e8cabd08fee649a6abc26f35a8d7a82c Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sat, 11 Feb 2017 17:09:36 +0100 Subject: Fix semantics of follow requests another slaps --- app/helpers/atom_builder_helper.rb | 1 + app/models/block.rb | 4 ---- app/models/favourite.rb | 2 -- app/models/follow.rb | 4 ---- app/models/follow_request.rb | 17 ++++++++++------- app/models/stream_entry.rb | 13 +++++++------ 6 files changed, 18 insertions(+), 23 deletions(-) (limited to 'app') diff --git a/app/helpers/atom_builder_helper.rb b/app/helpers/atom_builder_helper.rb index 5d20f8c2d..08d70b7ac 100644 --- a/app/helpers/atom_builder_helper.rb +++ b/app/helpers/atom_builder_helper.rb @@ -191,6 +191,7 @@ module AtomBuilderHelper include_author xml, stream_entry.target else object_type xml, stream_entry.target.object_type + verb xml, stream_entry.target.verb title xml, stream_entry.target.title link_alternate xml, TagManager.instance.url_for(stream_entry.target) end diff --git a/app/models/block.rb b/app/models/block.rb index c2067c5b8..d0662b685 100644 --- a/app/models/block.rb +++ b/app/models/block.rb @@ -18,10 +18,6 @@ class Block < ApplicationRecord target_account end - def object_type - :person - end - def hidden? true end diff --git a/app/models/favourite.rb b/app/models/favourite.rb index cd8e2098c..82f8c5258 100644 --- a/app/models/favourite.rb +++ b/app/models/favourite.rb @@ -19,8 +19,6 @@ class Favourite < ApplicationRecord destroyed? ? "#{account.acct} no longer favourites a status by #{status.account.acct}" : "#{account.acct} favourited a status by #{status.account.acct}" end - delegate :object_type, to: :target - def thread status end diff --git a/app/models/follow.rb b/app/models/follow.rb index f83490caa..e25c2bc9f 100644 --- a/app/models/follow.rb +++ b/app/models/follow.rb @@ -20,10 +20,6 @@ class Follow < ApplicationRecord target_account end - def object_type - :person - end - def title destroyed? ? "#{account.acct} is no longer following #{target_account.acct}" : "#{account.acct} started following #{target_account.acct}" end diff --git a/app/models/follow_request.rb b/app/models/follow_request.rb index 989c2c2a2..080c686e5 100644 --- a/app/models/follow_request.rb +++ b/app/models/follow_request.rb @@ -13,7 +13,8 @@ class FollowRequest < ApplicationRecord validates :account_id, uniqueness: { scope: :target_account_id } def authorize! - @verb = :authorize + @verb = :authorize + @target = clone.freeze account.follow!(target_account) MergeWorker.perform_async(target_account.id, account.id) @@ -22,7 +23,9 @@ class FollowRequest < ApplicationRecord end def reject! - @verb = :reject + @verb = :reject + @target = clone.freeze + destroy! end @@ -31,11 +34,11 @@ class FollowRequest < ApplicationRecord end def target - target_account - end - - def object_type - :person + if destroyed? && @verb + @target + else + target_account + end end def hidden? diff --git a/app/models/stream_entry.rb b/app/models/stream_entry.rb index e0b85be15..bb68b1e14 100644 --- a/app/models/stream_entry.rb +++ b/app/models/stream_entry.rb @@ -6,10 +6,11 @@ class StreamEntry < ApplicationRecord belongs_to :account, inverse_of: :stream_entries belongs_to :activity, polymorphic: true - belongs_to :status, foreign_type: 'Status', foreign_key: 'activity_id' - belongs_to :follow, foreign_type: 'Follow', foreign_key: 'activity_id' - belongs_to :favourite, foreign_type: 'Favourite', foreign_key: 'activity_id' - belongs_to :block, foreign_type: 'Block', foreign_key: 'activity_id' + belongs_to :status, foreign_type: 'Status', foreign_key: 'activity_id' + belongs_to :follow, foreign_type: 'Follow', foreign_key: 'activity_id' + belongs_to :favourite, foreign_type: 'Favourite', foreign_key: 'activity_id' + belongs_to :block, foreign_type: 'Block', foreign_key: 'activity_id' + belongs_to :follow_request, foreign_type: 'FollowRequest', foreign_key: 'activity_id' validates :account, :activity, presence: true @@ -30,7 +31,7 @@ class StreamEntry < ApplicationRecord end def targeted? - [:follow, :request_friend, :authorize, :unfollow, :block, :unblock, :share, :favorite].include? verb + [:follow, :request_friend, :authorize, :reject, :unfollow, :block, :unblock, :share, :favorite].include? verb end def target @@ -58,7 +59,7 @@ class StreamEntry < ApplicationRecord end def activity - !new_record? ? send(activity_type.downcase) : super + !new_record? ? send(activity_type.underscore) : super end private -- cgit