From 22d9cebae34605f52806d67ce301f9082afd02e3 Mon Sep 17 00:00:00 2001 From: Thorsten Eckel Date: Wed, 3 Feb 2016 11:23:26 +0100 Subject: [PATCH] Reworked to the functionality to import objects in the fetch loop instead of fetching all in the first place. Issue is caused by the Zendesk API or Gem. For more information see: https://github.com/zendesk/zendesk_api_client_rb/issues/290 . --- lib/import/zendesk.rb | 41 ----------------------------------------- 1 file changed, 41 deletions(-) diff --git a/lib/import/zendesk.rb b/lib/import/zendesk.rb index f654037f7..9f947a2ed 100644 --- a/lib/import/zendesk.rb +++ b/lib/import/zendesk.rb @@ -317,12 +317,7 @@ module Import::Zendesk local_fields = local_object.constantize.column_names - zendesk_object_fields = [] @client.send("#{local_object.downcase}_fields").all { |zendesk_object_field| - zendesk_object_fields.push(zendesk_object_field) - } - - zendesk_object_fields.each { |zendesk_object_field| if local_object == 'Ticket' mapped_object_field = method("mapping_#{local_object.downcase}_field").call( zendesk_object_field.type ) @@ -472,13 +467,7 @@ module Import::Zendesk def import_groups @zendesk_group_mapping = {} - zendesk_groups = [] @client.groups.all { |zendesk_group| - zendesk_groups.push(zendesk_group) - } - - zendesk_groups.each { |zendesk_group| - local_group = Group.create_if_not_exists( name: zendesk_group.name, active: !zendesk_group.deleted, @@ -526,12 +515,7 @@ module Import::Zendesk role_agent = Role.lookup(name: 'Agent') role_customer = Role.lookup(name: 'Customer') - zendesk_users = [] @client.users.all { |zendesk_user| - zendesk_users.push(zendesk_user) - } - - zendesk_users.each { |zendesk_user| local_user_fields = { login: zendesk_user.id.to_s, # Zendesk users may have no other identifier than the ID, e.g. twitter users @@ -602,12 +586,7 @@ module Import::Zendesk @zendesk_user_group_mapping = {} - zendesk_group_memberships = [] @client.group_memberships.all { |zendesk_group_membership| - zendesk_group_memberships.push(zendesk_group_membership) - } - - zendesk_group_memberships.each { |zendesk_group_membership| @zendesk_user_group_mapping[ zendesk_group_membership.user_id ] ||= [] @zendesk_user_group_mapping[ zendesk_group_membership.user_id ].push( zendesk_group_membership.group_id ) @@ -641,12 +620,7 @@ module Import::Zendesk article_type_facebook_feed_post = Ticket::Article::Type.lookup(name: 'facebook feed post') article_type_facebook_feed_comment = Ticket::Article::Type.lookup(name: 'facebook feed comment') - zendesk_tickets = [] @client.tickets.all { |zendesk_ticket| - zendesk_tickets.push(zendesk_ticket) - } - - zendesk_tickets.each { |zendesk_ticket| zendesk_ticket_fields = {} zendesk_ticket.custom_fields.each { |zendesk_ticket_field| @@ -840,12 +814,7 @@ module Import::Zendesk # https://developer.zendesk.com/rest_api/docs/core/macros def import_macros - zendesk_macros = [] @client.macros.all { |zendesk_macro| - zendesk_macros.push(zendesk_macro) - } - - zendesk_macros.each { |zendesk_macro| # TODO next if !zendesk_macro.active @@ -897,12 +866,7 @@ module Import::Zendesk # https://developer.zendesk.com/rest_api/docs/core/views def import_views - zendesk_views = [] @client.views.all { |zendesk_view| - zendesk_views.push(zendesk_view) - } - - zendesk_views.each { |zendesk_view| # "url" => "https://example.zendesk.com/api/v2/views/59511071.json" # "id" => 59511071 @@ -1031,12 +995,7 @@ module Import::Zendesk # https://developer.zendesk.com/rest_api/docs/core/automations def import_automations - zendesk_automations = [] @client.automations.all { |zendesk_automation| - zendesk_automations.push(zendesk_automation) - } - - zendesk_automations.each { |zendesk_automation| # "url" => "https://example.zendesk.com/api/v2/automations/60037892.json" # "id" => 60037892