diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2019-03-26 01:24:09 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-26 01:24:09 +0100 |
commit | 9745de883b198375ba23f7fde879f6d75ce2df0f (patch) | |
tree | 1ad05b94a50be048d55b7459f63c6ec71f80db52 | |
parent | e6cfa7ab897ac4fd6bf9bbcafe09fc42c4cc2c5d (diff) |
Add `blocked_by` relationship to the REST API (#10373)
-rw-r--r-- | app/presenters/account_relationships_presenter.rb | 6 | ||||
-rw-r--r-- | app/serializers/rest/relationship_serializer.rb | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/app/presenters/account_relationships_presenter.rb b/app/presenters/account_relationships_presenter.rb index e4aaa65f6..b05673a3d 100644 --- a/app/presenters/account_relationships_presenter.rb +++ b/app/presenters/account_relationships_presenter.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class AccountRelationshipsPresenter - attr_reader :following, :followed_by, :blocking, + attr_reader :following, :followed_by, :blocking, :blocked_by, :muting, :requested, :domain_blocking, :endorsed @@ -12,6 +12,7 @@ class AccountRelationshipsPresenter @following = cached[:following].merge(Account.following_map(@uncached_account_ids, @current_account_id)) @followed_by = cached[:followed_by].merge(Account.followed_by_map(@uncached_account_ids, @current_account_id)) @blocking = cached[:blocking].merge(Account.blocking_map(@uncached_account_ids, @current_account_id)) + @blocked_by = cached[:blocked_by].merge(Account.blocked_by_map(@uncached_account_ids, @current_account_id)) @muting = cached[:muting].merge(Account.muting_map(@uncached_account_ids, @current_account_id)) @requested = cached[:requested].merge(Account.requested_map(@uncached_account_ids, @current_account_id)) @domain_blocking = cached[:domain_blocking].merge(Account.domain_blocking_map(@uncached_account_ids, @current_account_id)) @@ -22,6 +23,7 @@ class AccountRelationshipsPresenter @following.merge!(options[:following_map] || {}) @followed_by.merge!(options[:followed_by_map] || {}) @blocking.merge!(options[:blocking_map] || {}) + @blocked_by.merge!(options[:blocked_by_map] || {}) @muting.merge!(options[:muting_map] || {}) @requested.merge!(options[:requested_map] || {}) @domain_blocking.merge!(options[:domain_blocking_map] || {}) @@ -37,6 +39,7 @@ class AccountRelationshipsPresenter following: {}, followed_by: {}, blocking: {}, + blocked_by: {}, muting: {}, requested: {}, domain_blocking: {}, @@ -64,6 +67,7 @@ class AccountRelationshipsPresenter following: { account_id => following[account_id] }, followed_by: { account_id => followed_by[account_id] }, blocking: { account_id => blocking[account_id] }, + blocked_by: { account_id => blocked_by[account_id] }, muting: { account_id => muting[account_id] }, requested: { account_id => requested[account_id] }, domain_blocking: { account_id => domain_blocking[account_id] }, diff --git a/app/serializers/rest/relationship_serializer.rb b/app/serializers/rest/relationship_serializer.rb index c6c722a54..1a3fd915c 100644 --- a/app/serializers/rest/relationship_serializer.rb +++ b/app/serializers/rest/relationship_serializer.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class REST::RelationshipSerializer < ActiveModel::Serializer - attributes :id, :following, :showing_reblogs, :followed_by, :blocking, + attributes :id, :following, :showing_reblogs, :followed_by, :blocking, :blocked_by, :muting, :muting_notifications, :requested, :domain_blocking, :endorsed @@ -27,6 +27,10 @@ class REST::RelationshipSerializer < ActiveModel::Serializer 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 |