123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- # Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/
- class Sequencer
- class Unit
- module Import
- module Zendesk
- module Ticket
- module Comment
- class 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
- instance.attachments
- end
- def skip?
- ensure_common_ground
- attachments_equal?
- end
- def ensure_common_ground
- return if common_ground?
- local_attachments.each(&:delete)
- end
- def common_ground?
- return false if remote_attachments.blank?
- attachments_equal?
- 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
- end
- end
- end
- end
- end
- end
|