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) {