Sha256: ccd3ccc3b17f5c5f8183fe12993629aa63e2d1a6eb4b0225f89bce0819cf063f

Contents?: true

Size: 994 Bytes

Versions: 13

Compression:

Stored size: 994 Bytes

Contents

module Workarea
  class IndexReleaseSchedulePreviews
    attr_reader :release, :starts_at, :ends_at

    def initialize(release: nil, starts_at: nil, ends_at: nil)
      @release = release
      @starts_at = starts_at
      @ends_at = ends_at
    end

    def affected_releases
      result = Release
        .scheduled(after: starts_at, before: ends_at)
        .includes(:changesets)
        .to_a

      result << release if release.present?
      result.uniq
    end

    def affected_models
      affected_releases.flat_map(&:changesets).flat_map(&:releasable).compact
    end

    def perform
      affected_releases.each do |release|
        affected_models.each do |releasable|
          Search::Storefront.new(releasable.in_release(release)).destroy

          # Different models have different indexing workers, running callbacks
          # ensures the appropriate worker is triggered
          releasable.run_callbacks(:save_release_changes)
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
workarea-core-3.5.27 app/services/workarea/index_release_schedule_previews.rb
workarea-core-3.5.26 app/services/workarea/index_release_schedule_previews.rb
workarea-core-3.5.25 app/services/workarea/index_release_schedule_previews.rb
workarea-core-3.5.23 app/services/workarea/index_release_schedule_previews.rb
workarea-core-3.5.22 app/services/workarea/index_release_schedule_previews.rb
workarea-core-3.5.21 app/services/workarea/index_release_schedule_previews.rb
workarea-core-3.5.20 app/services/workarea/index_release_schedule_previews.rb
workarea-core-3.5.19 app/services/workarea/index_release_schedule_previews.rb
workarea-core-3.5.18 app/services/workarea/index_release_schedule_previews.rb
workarea-core-3.5.17 app/services/workarea/index_release_schedule_previews.rb
workarea-core-3.5.16 app/services/workarea/index_release_schedule_previews.rb
workarea-core-3.5.15 app/services/workarea/index_release_schedule_previews.rb
workarea-core-3.5.14 app/services/workarea/index_release_schedule_previews.rb