- private void handleSuggestiveSearchData(DocumentStoreDataEntity eventEntity, String action,
- String target) {
- try {
- Map<String, List<String>> headers = new HashMap<>();
- headers.put(Headers.FROM_APP_ID, Arrays.asList("DataLayer"));
- headers.put(Headers.TRANSACTION_ID, Arrays.asList(MDC.get(MdcContext.MDC_REQUEST_ID)));
-
- String entityId = eventEntity.getId();
-
- if ((action.equalsIgnoreCase(ACTION_CREATE) && entityId != null)
- || action.equalsIgnoreCase(ACTION_UPDATE)) {
- // Run the GET to retrieve the ETAG from the search service
- OperationResult storedEntity =
- searchClient.get(target + entityId, headers, MediaType.APPLICATION_JSON_TYPE);
-
- if (HttpUtil.isHttpResponseClassSuccess(storedEntity.getResultCode())) {
- List<String> etag = storedEntity.getHeaders().get(Headers.ETAG);
-
- if (etag != null && etag.size() > 0) {
- headers.put(Headers.IF_MATCH, etag);
- } else {
- logger.error(EntityEventPolicyMsgs.NO_ETAG_AVAILABLE_FAILURE, target + entityId,
- entityId);
- }
- }
-
- String eventEntityStr = eventEntity.getAsJson();
-
- if (eventEntityStr != null) {
- searchClient.put(target + entityId, eventEntity.getAsJson(), headers,
- MediaType.APPLICATION_JSON_TYPE, MediaType.APPLICATION_JSON_TYPE);
- }
- } else if (action.equalsIgnoreCase(ACTION_CREATE)) {
- String eventEntityStr = eventEntity.getAsJson();
-
- if (eventEntityStr != null) {
- searchClient.post(target, eventEntityStr, headers, MediaType.APPLICATION_JSON_TYPE,
- MediaType.APPLICATION_JSON_TYPE);
- }
- } else if (action.equalsIgnoreCase(ACTION_DELETE)) {
- // Run the GET to retrieve the ETAG from the search service
- OperationResult storedEntity =
- searchClient.get(target + entityId, headers, MediaType.APPLICATION_JSON_TYPE);
-
- if (HttpUtil.isHttpResponseClassSuccess(storedEntity.getResultCode())) {
- List<String> etag = storedEntity.getHeaders().get(Headers.ETAG);
-
- if (etag != null && etag.size() > 0) {
- headers.put(Headers.IF_MATCH, etag);
- } else {
- logger.error(EntityEventPolicyMsgs.NO_ETAG_AVAILABLE_FAILURE, target + entityId,
- entityId);
- }
-
- searchClient.delete(target + eventEntity.getId(), headers, null);
- } else {
- logger.error(EntityEventPolicyMsgs.NO_ETAG_AVAILABLE_FAILURE, target + entityId,
- entityId);
- }
- } else {
- logger.error(EntityEventPolicyMsgs.ENTITY_OPERATION_NOT_SUPPORTED, action);
- }
- } catch (IOException e) {
- logger.error(EntityEventPolicyMsgs.FAILED_TO_UPDATE_ENTITY_IN_DOCSTORE, eventEntity.getId(),
- action);
- }
- }
-
- private void handleSearchServiceOperation(DocumentStoreDataEntity eventEntity, String action,
- String target) {