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 .

This commit is contained in:
Thorsten Eckel 2016-02-03 11:23:26 +01:00
parent 3202f8a51a
commit 22d9cebae3

View file

@ -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