12345678910111213141516171819202122232425262728293031323334353637 |
- # frozen_string_literal: true
- class ActivityPub::Activity::Remove < ActivityPub::Activity
- def perform
- return if @json['target'].blank?
- case value_or_id(@json['target'])
- when @account.featured_collection_url
- case @object['type']
- when 'Hashtag'
- remove_featured_tags
- else
- remove_featured
- end
- end
- end
- private
- def remove_featured
- status = status_from_uri(object_uri)
- return unless !status.nil? && status.account_id == @account.id
- pin = StatusPin.find_by(account: @account, status: status)
- pin&.destroy!
- end
- def remove_featured_tags
- name = @object['name']&.delete_prefix('#')
- return if name.blank?
- featured_tag = FeaturedTag.by_name(name).find_by(account: @account)
- featured_tag&.destroy!
- end
- end
|