src/main/java/org/embulk/input/zendesk/services/ZendeskNormalServices.java in embulk-input-zendesk-all-0.4.1 vs src/main/java/org/embulk/input/zendesk/services/ZendeskNormalServices.java in embulk-input-zendesk-all-0.4.3
- old
+ new
@@ -131,25 +131,28 @@
}
logger.info("Api END Time = '{}'", apiEndTime);
int numberOfRecords = 0;
if (result.has(ZendeskConstants.Field.COUNT)) {
numberOfRecords = result.get(ZendeskConstants.Field.COUNT).asInt();
+ logger.info("Number of Records {}", numberOfRecords);
}
while (iterator.hasNext()) {
final JsonNode recordJsonNode = iterator.next();
- if (isUpdatedBySystem(recordJsonNode, startTime)) {
- continue;
- }
+// if (isUpdatedBySystem(recordJsonNode, startTime)) {
+// logger.info("This record is update by system? {} IGNORED!! ", recordJsonNode.get("id"));
+// continue;
+// }
// Contain some records that later than end_time. Checked and don't add.
// Because the api already sorted by updated_at or timestamp for ticket_events, we just need to break no need to check further.
if (apiEndTime > endTime) {
long checkedTime = 0;
if (recordJsonNode.has(ZendeskConstants.Field.UPDATED_AT) && !recordJsonNode.get(ZendeskConstants.Field.UPDATED_AT).isNull()) {
checkedTime = ZendeskDateUtils.isoToEpochSecond(recordJsonNode.get(ZendeskConstants.Field.UPDATED_AT).textValue());
+// logger.info("Checked time {}", checkedTime);
}
// ticket events is updated by system not user's action so it only has timestamp field
if (task.getTarget().equals(Target.TICKET_EVENTS) && recordJsonNode.has("timestamp") && !recordJsonNode.get("timestamp").isNull()) {
checkedTime = recordJsonNode.get("timestamp").asLong();
@@ -159,25 +162,28 @@
if (task.getTarget().equals(Target.SCORES) && recordJsonNode.has("rated_at") && !recordJsonNode.get("rated_at").isNull()) {
checkedTime = ZendeskDateUtils.isoToEpochSecond(recordJsonNode.get("rated_at").textValue());
}
if (checkedTime > endTime) {
+ logger.info("Lets break since checked time > endTime {}", endTime);
break;
}
}
if (task.getDedup()) {
+ logger.info("Do we dedup??");
final String recordID = recordJsonNode.get(ZendeskConstants.Field.ID).asText();
// add success -> no duplicate
if (!knownIds.add(recordID)) {
continue;
}
}
pool.submit(() -> fetchSubResourceAndAddToImporter(recordJsonNode, task, recordImporter));
recordCount++;
+// logger.info("Record count {}", recordCount);
if (Exec.isPreview()) {
return;
}
}
@@ -188,10 +194,12 @@
startTime = startTime == apiEndTime
? apiEndTime + 1
: apiEndTime;
if (numberOfRecords < ZendeskConstants.Misc.MAXIMUM_RECORDS_INCREMENTAL || startTime > endTime) {
+ logger.info("Break because number of Records < MAXIMUM RECORDS {}", numberOfRecords);
+ logger.info("or start time {}> end Time {}", startTime, endTime);
break;
}
}
if (!Exec.isPreview()) {
@@ -243,10 +251,11 @@
}
}
private void fetchSubResourceAndAddToImporter(final JsonNode jsonNode, final ZendeskInputPlugin.PluginTask task, final RecordImporter recordImporter)
{
+// logger.info("Fetch Sub Resource {}", jsonNode.get("id"));
task.getIncludes().forEach(include -> {
final String relatedObjectName = include.trim();
final URIBuilder uriBuilder = ZendeskUtils.getURIBuilder(task.getLoginUrl())
.setPath(ZendeskConstants.Url.API
@@ -258,16 +267,17 @@
if (result != null && result.has(relatedObjectName)) {
((ObjectNode) jsonNode).set(include, result.get(relatedObjectName));
}
}
catch (final ConfigException e) {
+ logger.info("Some exception for id {}", jsonNode.get("id"));
// Sometimes we get 404 when having invalid endpoint, so ignore when we get 404 InvalidEndpoint
if (!(e.getCause() instanceof ZendeskException && ((ZendeskException) e.getCause()).getStatusCode() == HttpStatus.SC_NOT_FOUND)) {
throw e;
}
}
});
-
+// logger.info("Add record {}", jsonNode.get("id"));
recordImporter.addRecord(jsonNode);
}
private boolean isUpdatedBySystem(final JsonNode recordJsonNode, final long startTime)
{