module JSONAPI::Relationships::Events
def emit_relationship_event(action, relationship_data)
def emit_relationship_event(action, relationship_data) resource_type_name = params[:resource_type] || @resource_name.pluralize JSONAPI::Instrumentation.relationship_event( action:, resource_type: resource_type_name, resource_id: @resource.id, relationship_name: @relationship_name.to_s, related_ids: extract_related_ids(relationship_data), related_type: extract_related_type(relationship_data), ) end
def extract_related_ids(relationship_data)
def extract_related_ids(relationship_data) return nil if relationship_data.nil? if relationship_data.is_a?(Array) relationship_data.filter_map { |item| item[:id] } else [relationship_data[:id]].compact end end
def extract_related_type(relationship_data)
def extract_related_type(relationship_data) return nil if relationship_data.nil? if relationship_data.is_a?(Array) relationship_data.first&.dig(:type) else relationship_data[:type] end end