Browse Source

Fixes #4807 - Add the option to manually set updated time since the tickets from freshdesk should be migrated

Dominik Klein 1 year ago
parent
commit
9fed8988c1

+ 1 - 0
lib/sequencer/sequence/import/freshdesk/full.rb

@@ -7,6 +7,7 @@ class Sequencer::Sequence::Import::Freshdesk::Full < Sequencer::Sequence::Base
       'Import::Common::ImportMode::Check',
       'Import::Common::SystemInitDone::Check',
       'Import::Common::ImportJob::DryRun',
+      'Import::Freshdesk::Payload',
       'Import::Freshdesk::TimeEntry::Available',
       'Import::Freshdesk::IdMap',
       'Import::Freshdesk::Groups',

+ 6 - 0
lib/sequencer/unit/import/freshdesk/payload.rb

@@ -0,0 +1,6 @@
+# Copyright (C) 2012-2023 Zammad Foundation, https://zammad-foundation.org/
+
+class Sequencer::Unit::Import::Freshdesk::Payload < Sequencer::Unit::Import::Common::ImportJob::Payload::ToAttribute
+
+  provides :tickets_updated_since, :skip_time_entries
+end

+ 3 - 1
lib/sequencer/unit/import/freshdesk/tickets.rb

@@ -4,6 +4,8 @@ class Sequencer::Unit::Import::Freshdesk::Tickets < Sequencer::Unit::Import::Fre
 
   EXPECTING = %i[action response resources].freeze
 
+  uses :tickets_updated_since
+
   private
 
   def request_params
@@ -24,7 +26,7 @@ class Sequencer::Unit::Import::Freshdesk::Tickets < Sequencer::Unit::Import::Fre
   end
 
   def updated_since
-    @updated_since ||= '1970-01-01'
+    @updated_since ||= tickets_updated_since || '1970-01-01'
 
     return @updated_since if !new_page_cycle?
 

+ 3 - 0
lib/sequencer/unit/import/freshdesk/time_entry/available.rb

@@ -3,9 +3,12 @@
 class Sequencer::Unit::Import::Freshdesk::TimeEntry::Available < Sequencer::Unit::Common::Provider::Attribute
   extend ::Sequencer::Unit::Import::Freshdesk::Requester
 
+  uses :skip_time_entries
   provides :time_entry_available
 
   def process
+    return state.provide(:time_entry_available, false) if skip_time_entries
+
     state.provide(:time_entry_available, time_entry_available)
   end
 

+ 1 - 1
lib/sequencer/unit/import/kayako/sub_sequence/generic.rb

@@ -57,7 +57,7 @@ class Sequencer::Unit::Import::Kayako::SubSequence::Generic < Sequencer::Unit::B
   end
 
   def offset
-    iteration * 5 # TODO: only ddebug, normally 100
+    iteration * 100
   end
 
   def cursor_pagination?

+ 7 - 6
spec/lib/sequencer/unit/import/freshdesk/tickets_spec.rb

@@ -64,12 +64,13 @@ RSpec.describe Sequencer::Unit::Import::Freshdesk::Tickets, db_strategy: 'reset'
 
     let(:process_payload) do
       {
-        import_job:           build_stubbed(:import_job, name: 'Import::Freshdesk', payload: {}),
-        dry_run:              false,
-        request_params:       {},
-        field_map:            {},
-        id_map:               id_map,
-        time_entry_available: true,
+        import_job:            build_stubbed(:import_job, name: 'Import::Freshdesk', payload: {}),
+        dry_run:               false,
+        request_params:        {},
+        field_map:             {},
+        id_map:                id_map,
+        time_entry_available:  true,
+        tickets_updated_since: nil,
       }
     end
 

+ 5 - 4
spec/lib/sequencer/unit/import/freshdesk/time_entry/available_spec.rb

@@ -8,10 +8,11 @@ RSpec.describe Sequencer::Unit::Import::Freshdesk::TimeEntry::Available, sequenc
 
     let(:params) do
       {
-        dry_run:    false,
-        import_job: instance_double(ImportJob),
-        field_map:  {},
-        id_map:     {},
+        dry_run:           false,
+        import_job:        instance_double(ImportJob),
+        field_map:         {},
+        id_map:            {},
+        skip_time_entries: nil,
       }
     end