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

Version Path
embulk-input-zendesk-all-0.4.5 src/main/java/org/embulk/input/zendesk/stream/paginator/sunshine/CustomObjectSpliterator.java
embulk-input-zendesk-all-0.4.4 src/main/java/org/embulk/input/zendesk/stream/paginator/sunshine/CustomObjectSpliterator.java
embulk-input-zendesk-all-0.4.3 src/main/java/org/embulk/input/zendesk/stream/paginator/sunshine/CustomObjectSpliterator.java
embulk-input-zendesk-all-0.4.1 src/main/java/org/embulk/input/zendesk/stream/paginator/sunshine/CustomObjectSpliterator.java
embulk-input-zendesk-all-0.4.0 src/main/java/org/embulk/input/zendesk/stream/paginator/sunshine/CustomObjectSpliterator.java
embulk-input-zendesk-all-0.3.9 src/main/java/org/embulk/input/zendesk/stream/paginator/sunshine/CustomObjectSpliterator.java
embulk-input-zendesk-0.3.7 src/main/java/org/embulk/input/zendesk/stream/paginator/sunshine/CustomObjectSpliterator.java
embulk-input-zendesk-all-0.3.8 src/main/java/org/embulk/input/zendesk/stream/paginator/sunshine/CustomObjectSpliterator.java
embulk-input-zendesk-all-0.3.7 src/main/java/org/embulk/input/zendesk/stream/paginator/sunshine/CustomObjectSpliterator.java
embulk-input-zendesk-0.3.6 src/main/java/org/embulk/input/zendesk/stream/paginator/sunshine/CustomObjectSpliterator.java
embulk-input-zendesk-0.3.5 src/main/java/org/embulk/input/zendesk/stream/paginator/sunshine/CustomObjectSpliterator.java