Break out nested relationship API keys (#5887)
* Break out nested relationship API keys This closes #5856 by restoring the existing behavior of the `muting` and `following` keys (returning booleans rather than truthy or false). It adds `showing_reblogs` and `muting_notifications` keys: * `showing_reblogs` returns true if: 1. You've requested to follow the user, with reblogs shown, or 2. You are following the user, with reblogs shown. * `muting_notifications` returns true if you have muted the user and their notifications as well. * Rubocop fix * Fix pulling reblog/mute status from relationships I could swear this had passed tests before, but apparently not. Works now. * More test fixes Really, you'd expect this to be more straightforward.
This commit is contained in:
parent
063a1c2a8b
commit
4de211b80a
6 changed files with 28 additions and 17 deletions
|
@ -1,15 +1,21 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class REST::RelationshipSerializer < ActiveModel::Serializer
|
||||
attributes :id, :following, :followed_by, :blocking,
|
||||
:muting, :requested, :domain_blocking
|
||||
attributes :id, :following, :showing_reblogs, :followed_by, :blocking,
|
||||
:muting, :muting_notifications, :requested, :domain_blocking
|
||||
|
||||
def id
|
||||
object.id.to_s
|
||||
end
|
||||
|
||||
def following
|
||||
instance_options[:relationships].following[object.id] || false
|
||||
instance_options[:relationships].following[object.id] ? true : false
|
||||
end
|
||||
|
||||
def showing_reblogs
|
||||
(instance_options[:relationships].following[object.id] || {})[:reblogs] ||
|
||||
(instance_options[:relationships].requested[object.id] || {})[:reblogs] ||
|
||||
false
|
||||
end
|
||||
|
||||
def followed_by
|
||||
|
@ -21,11 +27,15 @@ class REST::RelationshipSerializer < ActiveModel::Serializer
|
|||
end
|
||||
|
||||
def muting
|
||||
instance_options[:relationships].muting[object.id] || false
|
||||
instance_options[:relationships].muting[object.id] ? true : false
|
||||
end
|
||||
|
||||
def muting_notifications
|
||||
(instance_options[:relationships].muting[object.id] || {})[:notifications] || false
|
||||
end
|
||||
|
||||
def requested
|
||||
instance_options[:relationships].requested[object.id] || false
|
||||
instance_options[:relationships].requested[object.id] ? true : false
|
||||
end
|
||||
|
||||
def domain_blocking
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue