class WolfCore::ApplicationService

def call

def call
  process
rescue StandardError => e
  on_timeout(e) if is_timeout_error?(e) && respond_to?(:on_timeout)
  common_data = { backtrace: e.backtrace }
  common_data.merge!(build_result_data) if respond_to?(:build_result_data, true)
  if e.instance_of?(WolfCore::ServiceException)
    return Result.failure(
      error: e.error.to_h.merge(common_data)
    )
  end
  Honeybadger.notify(e, sync: true)
  Result.failure(error: { message: e.message }.merge(common_data))
end