Sha256: 712a3e751ea0655dfd9a97a09b397fe45f63d05b5954c616f2495666c250e994

Contents?: true

Size: 730 Bytes

Versions: 3

Compression:

Stored size: 730 Bytes

Contents

module Workarea
  class BuildReleaseUndoChangesets
    include Sidekiq::Worker

    def perform(undo_release_id, release_id)
      release = Release.find(release_id)
      undo_release = Release.find(undo_release_id)

      existing_changesets = undo_release.changesets.to_a
      matching_changeset = ->(changeset, existing_changesets) do
        existing_changesets.any? do |cs|
          changeset.releasable_type == cs.releasable_type &&
          changeset.releasable_id == cs.releasable_id
        end
      end

      release.changesets.each_by(500) do |changeset|
        next if matching_changeset.call(changeset, existing_changesets)
        changeset.build_undo(release: undo_release).save!
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
workarea-core-3.5.27 app/workers/workarea/build_release_undo_changesets.rb
workarea-core-3.5.26 app/workers/workarea/build_release_undo_changesets.rb
workarea-core-3.5.25 app/workers/workarea/build_release_undo_changesets.rb