Module: Eco::API::UseCases::UseCaseIO::Chain

Included in:
Eco::API::UseCases::UseCaseIO
Defined in:
lib/eco/api/usecases/use_case_io/chain.rb

Instance Method Summary collapse

Instance Method Details

#chain(usecase:) ⇒ Object

Raises:

  • (ArgumentError)


3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/eco/api/usecases/use_case_io/chain.rb', line 3

def chain(usecase:)
  msg = "It should be a Eco::API::UseCases::UseCase. Given: #{usecase.class}"
  raise ArgumentError, msg unless usecase.is_a?(Eco::API::UseCases::UseCase)

  #aux_io = self.class.new(input: input, data: data, session: session, options: options, usecase: usecase)
  #kargs  = aux_io.params(keyed: true)
  kargs = params(keyed: true, all: true).merge(usecase: usecase)
  kargs.delete(:job)

  case type
  when :import
    kargs[:input] = output
  when :filter
    kargs[:data] = output
  when :transform, :sync, :export, :error_handler, :other
    # no redirections => should it redirect the input?
  end

  self.class.new(**kargs)
end