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.
This commit is contained in:
parent
4e41cd9ab8
commit
d4c94fa004
7 changed files with 86 additions and 11 deletions
|
@ -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
|
||||
|
|
|
@ -62,8 +62,12 @@ class Status < ApplicationRecord
|
|||
reply? ? :comment : :note
|
||||
end
|
||||
|
||||
def proper
|
||||
reblog? ? reblog : self
|
||||
end
|
||||
|
||||
def content
|
||||
reblog? ? reblog.text : text
|
||||
proper.text
|
||||
end
|
||||
|
||||
def target
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue