63 lines
1.5 KiB
Ruby
63 lines
1.5 KiB
Ruby
# Copyright (C) 2012-2022 Zammad Foundation, https://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
|