request.rb 1013 B

12345678910111213141516171819202122232425262728293031323334353637
  1. # Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
  2. class Sequencer
  3. class Unit
  4. module Import
  5. module Freshdesk
  6. class Request < Sequencer::Unit::Common::Provider::Attribute
  7. extend ::Sequencer::Unit::Import::Freshdesk::Requester
  8. prepend ::Sequencer::Unit::Import::Common::Model::Mixin::Skip::Action
  9. skip_action :skipped, :failed
  10. uses :object, :request_params
  11. provides :response
  12. private
  13. def response
  14. builder = backend.new(
  15. object: object,
  16. request_params: request_params
  17. )
  18. self.class.request(
  19. api_path: builder.api_path,
  20. params: builder.params,
  21. )
  22. end
  23. def backend
  24. "::Sequencer::Unit::Import::Freshdesk::Request::#{object}".safe_constantize || ::Sequencer::Unit::Import::Freshdesk::Request::Generic
  25. end
  26. end
  27. end
  28. end
  29. end
  30. end