12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- module Import
- module OTRS
- module DynamicFieldFactory
- extend Import::Factory
- extend Import::Helper
- # rubocop:disable Style/ModuleFunction
- extend self
- def skip?(record, *_args)
- return true if !importable?(record)
- return true if skip_field?(record['Name'])
- false
- end
- def backend_class(record, *_args)
- "Import::OTRS::DynamicField::#{record['FieldType']}".constantize
- end
- def skip_field?(dynamic_field_name)
- skip_fields.include?(dynamic_field_name)
- end
- private
- def importable?(dynamic_field)
- return false if !supported_object_type?(dynamic_field)
- supported_field_type?(dynamic_field)
- end
- def supported_object_type?(dynamic_field)
- return true if dynamic_field['ObjectType'] == 'Ticket'
- log "ERROR: Unsupported dynamic field object type '#{dynamic_field['ObjectType']}' for dynamic field '#{dynamic_field['Name']}'"
- false
- end
- def supported_field_type?(dynamic_field)
- return true if supported_field_types.include?(dynamic_field['FieldType'])
- log "ERROR: Unsupported dynamic field field type '#{dynamic_field['FieldType']}' for dynamic field '#{dynamic_field['Name']}'"
- false
- end
- def supported_field_types
- %w(Text TextArea Checkbox DateTime Date Dropdown Multiselect)
- end
- def skip_fields
- %w(ProcessManagementProcessID ProcessManagementActivityID ZammadMigratorChanged ZammadMigratorChangedOld)
- end
- end
- end
- end
|