Browse Source

Follow up b1b791a7 - Fixes #5474 - Failing import when an existing zendesk custom attribute name is equal an internal Zammad attribute name.

Dominik Klein 1 month ago
parent
commit
9a537e7ad1

+ 6 - 2
lib/sequencer/unit/import/zendesk/object_attribute/skip.rb

@@ -2,7 +2,7 @@
 
 class Sequencer::Unit::Import::Zendesk::ObjectAttribute::Skip < Sequencer::Unit::Base
 
-  uses :model_class, :sanitized_name
+  uses :field_map, :model_class, :resource, :sanitized_name
   provides :action
 
   # Skip fields which already exists and not editable.
@@ -11,7 +11,11 @@ class Sequencer::Unit::Import::Zendesk::ObjectAttribute::Skip < Sequencer::Unit:
 
     return if !attribute || attribute.editable
 
+    field_map[model_class.name] ||= {}
+    field_map[model_class.name][ resource['key'] ] = sanitized_name
+
     logger.info { "Skipping. Default field '#{attribute}' found for field '#{sanitized_name}'." }
+
     state.provide(:action, :skipped)
   end
 
@@ -19,7 +23,7 @@ class Sequencer::Unit::Import::Zendesk::ObjectAttribute::Skip < Sequencer::Unit:
 
   def object_attribute_for_name
     ObjectManager::Attribute.get(
-      object: model_class.to_s,
+      object: model_class.name,
       name:   sanitized_name
     )
   end

+ 2 - 2
spec/integration/zendesk_spec.rb

@@ -52,9 +52,9 @@ RSpec.describe 'Zendesk import', db_strategy: :reset, integration: true, require
           'total'       => 2,
         },
         'Tickets'       => {
-          'skipped'     => 34,
+          'skipped'     => 32,
           'created'     => 144,
-          'updated'     => 1,
+          'updated'     => 3,
           'unchanged'   => 0,
           'failed'      => 0,
           'deactivated' => 0,

+ 2 - 0
spec/lib/sequencer/sequence/import/zendesk/user_spec.rb

@@ -58,6 +58,7 @@ RSpec.describe Sequencer::Sequence::Import::Zendesk::User, db_strategy: :reset,
             'custom_dropdown' => '2',
             'lieblingstier'   => 'Hundä',
             'test::example'   => '1',
+            'phone'           => '1234',
           }
         }.merge(merge_resource)
       )
@@ -87,6 +88,7 @@ RSpec.describe Sequencer::Sequence::Import::Zendesk::User, db_strategy: :reset,
           'custom_dropdown' => 'custom_dropdown',
           'lieblingstier'   => 'lieblingstier',
           'test::example'   => 'test_example',
+          'phone'           => 'phone',
         }
       }
     end

File diff suppressed because it is too large
+ 27 - 31
test/data/vcr_cassettes/zendesk_import.yml


Some files were not shown because too many files changed in this diff