123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
- class Sequencer::Unit::Import::Zendesk::Ticket::Comment::Attachments < Sequencer::Unit::Import::Zendesk::SubSequence::SubObject
- def process
- # check if we need to import the attachments
- return if skip?
- # if so call the original .process from SubObject class
- super
- end
- private
- # for better readability
- alias remote_attachments resource_collection
- # for better readability
- def local_attachments
- @local_attachments ||= instance.attachments&.filter { |attachment| attachment.preferences&.dig('Content-Disposition') != 'inline' }
- end
- def skip?
- ensure_common_ground
- attachments_equal?
- end
- def ensure_common_ground
- return if attachments_equal?
- local_attachments.each(&:delete)
- end
- def attachments_equal?
- remote_attachments.count == local_attachments.count
- end
- def sequence_name
- "Import::Zendesk::Ticket::Comment::#{resource_klass}"
- end
- def resource_iteration_method
- :each
- end
- end
|