Sha256: ef06915acb49a0a5c4839761da754c1e464709f0ea07c3d4f9254347bee8fc5b
Contents?: true
Size: 1.57 KB
Versions: 11
Compression:
Stored size: 1.57 KB
Contents
package org.embulk.input.zendesk.stream.paginator.sunshine; import com.fasterxml.jackson.databind.JsonNode; import org.embulk.input.zendesk.ZendeskInputPlugin; import org.embulk.input.zendesk.clients.ZendeskRestClient; import org.embulk.input.zendesk.utils.ZendeskUtils; import java.util.Iterator; import java.util.function.Consumer; public class CustomObjectSpliterator extends SunshineSpliterator { public CustomObjectSpliterator(final String path, final ZendeskRestClient zendeskRestClient, final ZendeskInputPlugin.PluginTask task, final boolean isPreview) { super(path, zendeskRestClient, task, isPreview); } @Override protected boolean isContinue(final JsonNode jsonNode, final Consumer<? super JsonNode> action) { final Iterator<JsonNode> iterator = ZendeskUtils.getListRecords(jsonNode, task.getTarget().getJsonName()); if (isPreview) { if (iterator.hasNext()) { JsonNode item = iterator.next(); // we have data for preview, no need to continue if (item != null && !item.isNull()) { action.accept(item); return false; } } } handleRunIterator(iterator, action); if (jsonNode.has("links") && !ZendeskUtils.isNull(jsonNode.get("links")) && jsonNode.get("links").has("next") && !ZendeskUtils.isNull(jsonNode.get("links").get("next"))) { path = task.getLoginUrl() + jsonNode.get("links").get("next"); return true; } return false; } }
Version data entries
11 entries across 11 versions & 2 rubygems