about summary refs log tree commit diff
path: root/app/models/account.rb
diff options
context:
space:
mode:
authorJoël Quenneville <joelq@thoughtbot.com>2017-04-07 14:18:30 -0400
committerJoël Quenneville <joelq@thoughtbot.com>2017-04-07 14:18:30 -0400
commitd4c94fa004117fdb7226b1b846a12d12dc0542d9 (patch)
tree93d2a3a70ad6bb6f23a63c9f6fc086c9f197384f /app/models/account.rb
parent4e41cd9ab8f51120d558b70528b163c98993be53 (diff)
DRY up reblog vs original status check
Checking reblog vs original status was happening in multiple places
across the app. For views, this logic was encapsulated in a helper
method named `proper_status` but in the other layers of the app, the
logic was duplicated.

Because the logic is used at all layers of the app, we extracted it into
a `Status#proper` method on the model and changed all uses of the logic
to use this method. There is now a single source of truth for this
condition.

We added test coverage to untested methods that got refactored.
Diffstat (limited to 'app/models/account.rb')
-rw-r--r--app/models/account.rb4
1 files changed, 2 insertions, 2 deletions
diff --git a/app/models/account.rb b/app/models/account.rb
index 6968607a2..cbba8b5b6 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -125,11 +125,11 @@ class Account < ApplicationRecord
   end
 
   def favourited?(status)
-    (status.reblog? ? status.reblog : status).favourites.where(account: self).count.positive?
+    status.proper.favourites.where(account: self).count.positive?
   end
 
   def reblogged?(status)
-    (status.reblog? ? status.reblog : status).reblogs.where(account: self).count.positive?
+    status.proper.reblogs.where(account: self).count.positive?
   end
 
   def keypair