Repository URL to install this package:
|
Version:
0.1.2 ▾
|
# frozen_string_literal: true
module Kiwi
module Interactor
# Kiwi Interactor Base 112
class Base
include Hanami::Interactor
expose :logs, :exception
def logs
@logs ||= []
end
def logger
@logger ||= SemanticLogger[self.class.name]
end
def sync!(method, exception)
logs << method
if !exception.nil?
@exception = exception
error! exception&.message
end
# raise exception unless exception.nil?
end
def validator(params)
kclass = self.class.name.gsub('Interactors::', 'Validations::')
klass = Hanami::Utils::Class.load(kclass)
if klass.nil?
sync! __method__,
Kiwi::Interactor::Errors::ValidationClassMissing.new
end
@params = klass.new(params).validate
return if @params.success?
sync! __method__,
Kiwi::Errors::RecordInvalid.new(@params)
end
def process_error(exception)
@exception = exception
error! exception.message
end
end
end
end