From f1f93b773e826597695f086495182d4a487fbfe7 Mon Sep 17 00:00:00 2001 From: Denny Bresch Date: Thu, 8 Aug 2019 10:15:39 +0200 Subject: [PATCH] Follow-up - #1161 - Zendesk import fails for deleted tickets. --- .../sequence/import/zendesk/ticket.rb | 1 + .../import/zendesk/sub_sequence/sub_object.rb | 7 +++++- .../import/zendesk/ticket/skip/deleted.rb | 23 +++++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 lib/sequencer/unit/import/zendesk/ticket/skip/deleted.rb diff --git a/lib/sequencer/sequence/import/zendesk/ticket.rb b/lib/sequencer/sequence/import/zendesk/ticket.rb index 7c9681c10..56fe85091 100644 --- a/lib/sequencer/sequence/import/zendesk/ticket.rb +++ b/lib/sequencer/sequence/import/zendesk/ticket.rb @@ -6,6 +6,7 @@ class Sequencer def self.sequence [ + 'Import::Zendesk::Ticket::Skip::Deleted', 'Import::Zendesk::Ticket::UserID', 'Import::Zendesk::Ticket::OwnerID', 'Import::Zendesk::Ticket::GroupID', diff --git a/lib/sequencer/unit/import/zendesk/sub_sequence/sub_object.rb b/lib/sequencer/unit/import/zendesk/sub_sequence/sub_object.rb index 12ce1ee8f..454bf0b9c 100644 --- a/lib/sequencer/unit/import/zendesk/sub_sequence/sub_object.rb +++ b/lib/sequencer/unit/import/zendesk/sub_sequence/sub_object.rb @@ -6,7 +6,12 @@ class Sequencer class SubObject < Sequencer::Unit::Base include ::Sequencer::Unit::Import::Zendesk::SubSequence::Base - uses :resource, :instance, :user_id, :model_class + uses :resource, :instance, :user_id, :model_class, :action + + def self.inherited(subclass) + subclass.prepend(::Sequencer::Unit::Import::Common::Model::Mixin::Skip::Action) + subclass.skip_action(:skipped, :failed) + end def process resource_iteration do |sub_resource| diff --git a/lib/sequencer/unit/import/zendesk/ticket/skip/deleted.rb b/lib/sequencer/unit/import/zendesk/ticket/skip/deleted.rb new file mode 100644 index 000000000..388eedb69 --- /dev/null +++ b/lib/sequencer/unit/import/zendesk/ticket/skip/deleted.rb @@ -0,0 +1,23 @@ +class Sequencer + class Unit + module Import + module Zendesk + module Ticket + module Skip + class Deleted < Sequencer::Unit::Base + + uses :resource + provides :action + + def process + return if resource.status != 'deleted' + + state.provide(:action, :skipped) + end + end + end + end + end + end + end +end