app/services/hyrax/collections/collection_member_service.rb in hyrax-3.1.0 vs app/services/hyrax/collections/collection_member_service.rb in hyrax-3.2.0
- old
+ new
@@ -108,11 +108,11 @@
def add_member(collection_id:, new_member:, user:)
message = Hyrax::MultipleMembershipChecker.new(item: new_member).check(collection_ids: [collection_id], include_current_members: true)
raise Hyrax::SingleMembershipError, message if message.present?
new_member.member_of_collection_ids << collection_id # only populate this direction
new_member = Hyrax.persister.save(resource: new_member)
- Hyrax.publisher.publish('object.metadata.updated', object: new_member, user: user)
+ publish_metadata_updated(new_member, user)
new_member
end
# Remove collections and/or works from the members set of a collection
# @param collection_id [Valkyrie::ID] the id of the parent collection
@@ -146,11 +146,21 @@
# @return [Hyrax::Resource] updated member resource
def remove_member(collection_id:, member:, user:)
return member unless member?(collection_id: collection_id, member: member)
member.member_of_collection_ids.delete(collection_id)
member = Hyrax.persister.save(resource: member)
- Hyrax.publisher.publish('object.metadata.updated', object: member, user: user)
+ publish_metadata_updated(member, user)
member
+ end
+
+ private
+
+ def publish_metadata_updated(member, user)
+ if member.collection?
+ Hyrax.publisher.publish('collection.metadata.updated', collection: member, user: user)
+ else
+ Hyrax.publisher.publish('object.metadata.updated', object: member, user: user)
+ end
end
end
end
end
end