catstodon/app/serializers/rest/relationship_serializer.rb
Eugen Rochko 67b3b62b98
Improve blocked view of profiles (#10491)
* Revert "Fix filtering of favourited_by, reblogged_by, followers and following (#10447)"

This reverts commit 120544067f.

* Revert "Hide blocking accounts from blocked users (#10442)"

This reverts commit 62bafa20a1.

* Improve blocked view of profiles

- Change "You are blocked" to "Profile unavailable"
- Hide following/followers in API when blocked
- Disable follow button and show "Profile unavailable" on public profile as well
2019-04-07 04:59:13 +02:00

53 lines
1.4 KiB
Ruby

# frozen_string_literal: true
class REST::RelationshipSerializer < ActiveModel::Serializer
attributes :id, :following, :showing_reblogs, :followed_by, :blocking, :blocked_by,
:muting, :muting_notifications, :requested, :domain_blocking,
:endorsed
def id
object.id.to_s
end
def following
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
instance_options[:relationships].followed_by[object.id] || false
end
def blocking
instance_options[:relationships].blocking[object.id] || false
end
def blocked_by
instance_options[:relationships].blocked_by[object.id] || false
end
def muting
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] ? true : false
end
def domain_blocking
instance_options[:relationships].domain_blocking[object.id] || false
end
def endorsed
instance_options[:relationships].endorsed[object.id] || false
end
end