attribute_examples.rb 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
  2. class Sequencer
  3. class Unit
  4. module Import
  5. module Exchange
  6. class AttributeExamples < Sequencer::Unit::Base
  7. include ::Sequencer::Unit::Exchange::Folders::Mixin::Folder
  8. uses :ews_folder_ids
  9. provides :ews_attributes_examples
  10. def process
  11. state.provide(:ews_attributes_examples) do
  12. ::Import::Helper::AttributesExamples.new do |extractor|
  13. ews_folder_ids.collect do |folder_id|
  14. ews_folder.find(folder_id).items.each do |item|
  15. attributes = ::Import::Exchange::ItemAttributes.extract(item)
  16. extractor.extract(attributes)
  17. break if extractor.enough
  18. rescue => e
  19. Rails.logger.error 'Unable to process Exchange folder item'
  20. Rails.logger.debug { item.inspect }
  21. Rails.logger.error e
  22. nil
  23. end
  24. rescue NoMethodError => e
  25. raise if e.message.exclude?('Viewpoint::EWS::')
  26. logger.error e
  27. logger.error "Skipping folder_id '#{folder_id}' due to unsupported entries."
  28. end
  29. end.examples
  30. end
  31. end
  32. end
  33. end
  34. end
  35. end
  36. end