@Override public int execute(Action action, Event event) { Profile profile = event.getProfile(); boolean isProfileUpdated = false; ISO8601DateFormat dateFormat = new ISO8601DateFormat(); Map consentMap = (Map) event.getProperties().get(CONSENT_PROPERTY_NAME); if (consentMap != null) { if (consentMap.containsKey("typeIdentifier") && consentMap.containsKey("status")) { Consent consent = null; try { consent = new Consent(consentMap, dateFormat); isProfileUpdated = profile.setConsent(consent); } catch (ParseException e) { logger.error("Error parsing date format", e); } } else { logger.warn("Event properties for modifyConsent is missing typeIdentifier and grant properties. We will ignore this event."); } } return isProfileUpdated ? EventService.PROFILE_UPDATED : EventService.NO_CHANGE; } }
@SuppressWarnings({"unchecked", "rawtypes"}) public int execute(Action action, Event event) { boolean changed = false; Map<String, Object> properties = new HashMap<String, Object>(); if (event.getProperties() != null) { properties.putAll(event.getProperties()); } try { Object targetProperties = BeanUtilsBean.getInstance().getPropertyUtils().getProperty(event.getTarget(), "properties"); if (targetProperties instanceof Map) { properties.putAll((Map) targetProperties); } } catch (Exception e) { // Ignore } for (Map.Entry<String, Object> entry : properties.entrySet()) { if (event.getProfile().getProperty(entry.getKey()) == null || !event.getProfile().getProperty(entry.getKey()).equals(event.getProperty(entry.getKey()))) { String propertyMapping = profileService.getPropertyTypeMapping(entry.getKey()); String propertyName = (propertyMapping != null) ? propertyMapping : entry.getKey(); event.getProfile().setProperty(propertyName, entry.getValue()); changed = true; } } return changed ? EventService.PROFILE_UPDATED : EventService.NO_CHANGE; } }
Event event = (Event) item; if (expression.startsWith("properties.")) { return getNestedPropertyValue(expression.substring("properties.".length()), event.getProperties());
@Override public int execute(Action action, Event event) { String eventType = (String) action.getParameterValues().get("eventType"); @SuppressWarnings("unchecked") Map<String, Object> eventProperties = (Map<String, Object>) action.getParameterValues().get("eventProperties"); Item target = (Item) action.getParameterValues().get("eventTarget"); // String type = (String) target.get("type"); // Item targetItem = new CustomItem(); // BeanUtils.populate(targetItem, target); Event subEvent = new Event(eventType, event.getSession(), event.getProfile(), event.getScope(), event, target, event.getTimeStamp()); subEvent.setProfileId(event.getProfileId()); subEvent.getAttributes().putAll(event.getAttributes()); subEvent.getProperties().putAll(eventProperties); return eventService.send(subEvent); } }
Map<String, Object> propsToAdd = (HashMap<String, Object>) event.getProperties().get(PROPS_TO_ADD); Map<String, Object> propsToUpdate = (HashMap<String, Object>) event.getProperties().get(PROPS_TO_UPDATE); if (propsToUpdate != null) { isProfileOrPersonaUpdated |= processProperties(target, propsToUpdate, "alwaysSet"); List<String> propsToDelete = (List<String>) event.getProperties().get(PROPS_TO_DELETE); if (propsToDelete != null) { for (String prop : propsToDelete) {