private long getLatestData(ApiKey apiKey) { if (!apiKey.getConnector().hasFacets()) return Long.MAX_VALUE; final ObjectType[] objectTypes = apiKey.getConnector().objectTypes(); if (objectTypes == null || objectTypes.length == 0) { final String maxTimeAtt = guestService.getApiKeyAttribute(apiKey, ApiKeyAttribute.MAX_TIME_KEY); // only return the ApiKey's maxTime if we have it cached as an attribute if (maxTimeAtt != null && StringUtils.isNotEmpty(maxTimeAtt)) { final DateTime dateTime = ISODateTimeFormat.dateHourMinuteSecondFraction() .withZoneUTC() .parseDateTime(maxTimeAtt); return dateTime.getMillis(); } } else { long maxTime = Long.MIN_VALUE; for (ObjectType objectType : objectTypes) { final String maxTimeAtt = guestService.getApiKeyAttribute( apiKey, objectType.getApiKeyAttributeName(ApiKeyAttribute.MAX_TIME_KEY)); if (maxTimeAtt != null && StringUtils.isNotEmpty(maxTimeAtt)) { final DateTime dateTime = ISODateTimeFormat.dateHourMinuteSecondFraction() .withZoneUTC() .parseDateTime(maxTimeAtt); final long maxObjectTypeTime = dateTime.getMillis(); if (maxObjectTypeTime > maxTime) maxTime = maxObjectTypeTime; } } // only return the ApiKey's maxTime if we have it cached as an attribute for any its // connector's objectTypes if (maxTime > Long.MIN_VALUE) return maxTime; } // fall back to old method of querying the facets table AbstractFacet facet = null; // apiDataService.getLatestApiDataFacet(apiKey, null); return facet == null ? Long.MAX_VALUE : facet.end; }
private long getLastSync(ApiKey apiKey) { if (!apiKey.getConnector().hasFacets()) return Long.MAX_VALUE; final String lastSyncTimeAtt = guestService.getApiKeyAttribute(apiKey, ApiKeyAttribute.LAST_SYNC_TIME_KEY); // only return the ApiKey's lastSyncTime if we have it cached as an attribute if (lastSyncTimeAtt != null && StringUtils.isNotEmpty(lastSyncTimeAtt)) { final DateTime dateTime = ISODateTimeFormat.dateHourMinuteSecondFraction() .withZoneUTC() .parseDateTime(lastSyncTimeAtt); return dateTime.getMillis(); } // fall back to old method of querying the ApiUpdates table ApiUpdate update = null; // connectorUpdateService.getLastSuccessfulUpdate(apiKey); return update != null ? update.ts : Long.MAX_VALUE; }
private void setApiKeyAttribute(final ApiKey apiKey) { guestService.setApiKeyAttribute( apiKey, ApiKeyAttribute.LAST_SYNC_TIME_KEY, ISODateTimeFormat.dateHourMinuteSecondFraction() .withZoneUTC() .print(System.currentTimeMillis())); guestService.setApiKeyAttribute( apiKey, ApiKeyAttribute.LAST_SYNC_TIME_KEY, ISODateTimeFormat.dateHourMinuteSecondFraction() .withZoneUTC() .print(System.currentTimeMillis())); guestService.setApiKeyAttribute( apiKey, ApiKeyAttribute.LAST_SYNC_TIME_KEY, ISODateTimeFormat.dateHourMinuteSecondFraction() .withZoneUTC() .print(System.currentTimeMillis())); guestService.setApiKeyAttribute( apiKey, ApiKeyAttribute.LAST_SYNC_TIME_KEY, ISODateTimeFormat.dateHourMinuteSecondFraction() .withZoneUTC() .print(System.currentTimeMillis())); guestService.setApiKeyAttribute( apiKey, ApiKeyAttribute.LAST_SYNC_TIME_KEY, ISODateTimeFormat.dateHourMinuteSecondFraction() .withZoneUTC() .print(System.currentTimeMillis())); guestService.setApiKeyAttribute( apiKey, ApiKeyAttribute.LAST_SYNC_TIME_KEY, ISODateTimeFormat.dateHourMinuteSecondFraction() .withZoneUTC() .print(System.currentTimeMillis())); }