# frozen_string_literal: true # We store events about issuable label changes and weight changes in separate tables (not as # other system notes), but we still want to display notes about label and weight changes # as classic system notes in UI. This service merges synthetic label and weight notes # with classic notes and sorts them by creation time. module ResourceEvents class MergeIntoNotesService include Gitlab::Utils::StrongMemoize attr_reader :resource, :current_user, :params def initialize(resource, current_user, params = {}) @resource = resource @current_user = current_user @params = params end def execute(notes = []) (notes + synthetic_notes).sort_by { |n| n.created_at } end private def synthetic_notes SyntheticLabelNotesBuilderService.new(resource, current_user, params).execute end end end ResourceEvents::MergeIntoNotesService.prepend_if_ee('EE::ResourceEvents::MergeIntoNotesService')