Sha256: 36a6504ac840ba0e8c83b9fa1bb13678e1a27136803beccb7820303315e0bf94

Contents?: true

Size: 943 Bytes

Versions: 8

Compression:

Stored size: 943 Bytes

Contents

class Eco::API::UseCases::DefaultCases::UpsertCase < Eco::API::Common::Loaders::UseCase
  name "upsert"
  type :sync

  attr_reader :options
  
  def main(entries, people, session, options, usecase)
    @options = options
    micro    = session.micro
    creation = session.new_job("main", "create", :create, usecase)
    update   = session.new_job("main", "update", :update, usecase)
    supers   = session.new_job("post", "supers", :update, usecase, :core)

    micro.with_each(entries, people, options, append_created: append_created) do |entry, person|
      person.new? ? creation.add(person) : update.add(person)
      micro.set_core_with_supervisor(entry, person, people, supers, options)
      entry.set_details(person) unless options.dig(:exclude, :details)
      micro.set_account(entry, person, options)
    end
  end

  private

  def append_created
    options.dig(:people, :append_created)
  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
eco-helpers-2.0.33 lib/eco/api/usecases/default_cases/upsert_case.rb
eco-helpers-2.0.32 lib/eco/api/usecases/default_cases/upsert_case.rb
eco-helpers-2.0.31 lib/eco/api/usecases/default_cases/upsert_case.rb
eco-helpers-2.0.30 lib/eco/api/usecases/default_cases/upsert_case.rb
eco-helpers-2.0.29 lib/eco/api/usecases/default_cases/upsert_case.rb
eco-helpers-2.0.28 lib/eco/api/usecases/default_cases/upsert_case.rb
eco-helpers-2.0.27 lib/eco/api/usecases/default_cases/upsert_case.rb
eco-helpers-2.0.26 lib/eco/api/usecases/default_cases/upsert_case.rb