Class: CanadianTire::StoreAddressChangesImporter::Result

Inherits:
Data
  • Object
show all
Defined in:
app/services/canadian_tire/store_address_changes_importer.rb

Overview

Outcome of a single import run.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(added: 0, deleted: 0, updated: 0, skipped: [], errors: []) ⇒ Result

Returns a new instance of Result.



75
# File 'app/services/canadian_tire/store_address_changes_importer.rb', line 75

def initialize(added: 0, deleted: 0, updated: 0, skipped: [], errors: []) = super

Instance Attribute Details

#addedObject (readonly)

Returns the value of attribute added

Returns:

  • (Object)

    the current value of added



74
75
76
# File 'app/services/canadian_tire/store_address_changes_importer.rb', line 74

def added
  @added
end

#added [Integer] count of +ADDITION+ rows inserted.([Integer]) ⇒ Object (readonly)

Outcome of a single import run.



74
75
76
77
78
79
80
81
# File 'app/services/canadian_tire/store_address_changes_importer.rb', line 74

Result = Data.define(:added, :deleted, :updated, :skipped, :errors) do
  def initialize(added: 0, deleted: 0, updated: 0, skipped: [], errors: []) = super
  def success? = errors.empty?
  def summary
    "added=#{added} deleted=#{deleted} updated=#{updated} " \
      "skipped=#{skipped.length} errors=#{errors.length}"
  end
end

#deletedObject (readonly)

Returns the value of attribute deleted

Returns:

  • (Object)

    the current value of deleted



74
75
76
# File 'app/services/canadian_tire/store_address_changes_importer.rb', line 74

def deleted
  @deleted
end

#deleted [Integer] count of +DELETION+ rows destroyed.([Integer]) ⇒ Object (readonly)

Outcome of a single import run.



74
75
76
77
78
79
80
81
# File 'app/services/canadian_tire/store_address_changes_importer.rb', line 74

Result = Data.define(:added, :deleted, :updated, :skipped, :errors) do
  def initialize(added: 0, deleted: 0, updated: 0, skipped: [], errors: []) = super
  def success? = errors.empty?
  def summary
    "added=#{added} deleted=#{deleted} updated=#{updated} " \
      "skipped=#{skipped.length} errors=#{errors.length}"
  end
end

#errorsObject (readonly)

Returns the value of attribute errors

Returns:

  • (Object)

    the current value of errors



74
75
76
# File 'app/services/canadian_tire/store_address_changes_importer.rb', line 74

def errors
  @errors
end

#errors [Array<Hash>] rows that failed validation —([Array<Hash>]) ⇒ Object (readonly)

unknown +CHANGE TYPE+ or exception during apply.



74
75
76
77
78
79
80
81
# File 'app/services/canadian_tire/store_address_changes_importer.rb', line 74

Result = Data.define(:added, :deleted, :updated, :skipped, :errors) do
  def initialize(added: 0, deleted: 0, updated: 0, skipped: [], errors: []) = super
  def success? = errors.empty?
  def summary
    "added=#{added} deleted=#{deleted} updated=#{updated} " \
      "skipped=#{skipped.length} errors=#{errors.length}"
  end
end

#skippedObject (readonly)

Returns the value of attribute skipped

Returns:

  • (Object)

    the current value of skipped



74
75
76
# File 'app/services/canadian_tire/store_address_changes_importer.rb', line 74

def skipped
  @skipped
end

#skipped [Array<Hash>] rows that were intentionally not([Array<Hash>]) ⇒ Object (readonly)

applied (idempotency hits — missing target, duplicate add, blank type),
each as +{ row:, store:, reason: }+.



74
75
76
77
78
79
80
81
# File 'app/services/canadian_tire/store_address_changes_importer.rb', line 74

Result = Data.define(:added, :deleted, :updated, :skipped, :errors) do
  def initialize(added: 0, deleted: 0, updated: 0, skipped: [], errors: []) = super
  def success? = errors.empty?
  def summary
    "added=#{added} deleted=#{deleted} updated=#{updated} " \
      "skipped=#{skipped.length} errors=#{errors.length}"
  end
end

#updatedObject (readonly)

Returns the value of attribute updated

Returns:

  • (Object)

    the current value of updated



74
75
76
# File 'app/services/canadian_tire/store_address_changes_importer.rb', line 74

def updated
  @updated
end

#updated [Integer] count of update-variant rows applied.([Integer]) ⇒ Object (readonly)

Outcome of a single import run.



74
75
76
77
78
79
80
81
# File 'app/services/canadian_tire/store_address_changes_importer.rb', line 74

Result = Data.define(:added, :deleted, :updated, :skipped, :errors) do
  def initialize(added: 0, deleted: 0, updated: 0, skipped: [], errors: []) = super
  def success? = errors.empty?
  def summary
    "added=#{added} deleted=#{deleted} updated=#{updated} " \
      "skipped=#{skipped.length} errors=#{errors.length}"
  end
end

Instance Method Details

#success?Boolean

Returns:

  • (Boolean)


76
# File 'app/services/canadian_tire/store_address_changes_importer.rb', line 76

def success? = errors.empty?

#summaryObject



77
78
79
80
# File 'app/services/canadian_tire/store_address_changes_importer.rb', line 77

def summary
  "added=#{added} deleted=#{deleted} updated=#{updated} " \
    "skipped=#{skipped.length} errors=#{errors.length}"
end