in data-index/data-index-service/data-index-service-common/src/main/java/org/kie/kogito/index/service/json/UserTaskInstanceMetaMapper.java [66:149]
private ObjectNode getUserTaskJson(UserTaskInstanceDataEvent<?> event) {
ObjectNode json = getObjectMapper().createObjectNode();
json.put(ID, event.getKogitoUserTaskInstanceId());
json.put("processInstanceId", event.getKogitoProcessInstanceId());
json.put("state", event.getKogitoUserTaskInstanceState());
json.put(LAST_UPDATE, event.getTime() == null ? null : event.getTime().toInstant().toEpochMilli());
if (event instanceof UserTaskInstanceStateDataEvent) {
UserTaskInstanceStateDataEvent data = (UserTaskInstanceStateDataEvent) event;
json.put("actualOwner", data.getData().getActualOwner());
if (!isNullOrEmpty(data.getData().getUserTaskDescription())) {
json.put("description", data.getData().getUserTaskDescription());
}
if (!isNullOrEmpty(data.getData().getUserTaskName())) {
json.put("name", data.getData().getUserTaskName());
}
if (!isNullOrEmpty(data.getData().getUserTaskPriority())) {
json.put("priority", data.getData().getUserTaskPriority());
}
if (data.getData().getState() != null && data.getData().getState().equals("Completed")) {
json.put("completed", data.getData().getEventDate().toInstant().toEpochMilli());
}
List<String> events = List.of("Ready", "InProgress");
if (data.getData().getState() != null && events.contains(data.getData().getState())) {
json.put("started", data.getData().getEventDate().toInstant().toEpochMilli());
}
} else if (event instanceof UserTaskInstanceAssignmentDataEvent) {
UserTaskInstanceAssignmentDataEvent data = (UserTaskInstanceAssignmentDataEvent) event;
UserTaskInstanceAssignmentEventBody body = data.getData();
switch (body.getAssignmentType()) {
case "USER_OWNERS":
mapArray("potentialUsers", new HashSet<>(body.getUsers()), json);
break;
case "USER_GROUPS":
mapArray("potentialGroups", new HashSet<>(body.getUsers()), json);
break;
case "USERS_EXCLUDED":
mapArray("excludedUsers", new HashSet<>(body.getUsers()), json);
break;
case "ADMIN_GROUPS":
mapArray("adminUsers", new HashSet<>(body.getUsers()), json);
break;
case "ADMIN_USERS":
mapArray("adminGroups", new HashSet<>(body.getUsers()), json);
break;
}
} else if (event instanceof UserTaskInstanceAttachmentDataEvent) {
UserTaskInstanceAttachmentDataEvent data = (UserTaskInstanceAttachmentDataEvent) event;
UserTaskInstanceAttachmentEventBody body = data.getData();
Map<String, Object> attachment = new HashMap<>();
attachment.put("id", body.getAttachmentId());
attachment.put("name", body.getAttachmentName());
attachment.put("content", body.getAttachmentURI() != null ? body.getAttachmentURI().toString() : "");
attachment.put("updatedBy", body.getEventUser());
attachment.put("updatedAt", body.getEventDate());
if (body.getEventType() == UserTaskInstanceAttachmentEventBody.EVENT_TYPE_DELETED) {
attachment.put("remove", true);
}
ArrayNode arrayNode = json.withArray("attachments");
arrayNode.add(getObjectMapper().valueToTree(attachment));
} else if (event instanceof UserTaskInstanceCommentDataEvent) {
UserTaskInstanceCommentDataEvent data = (UserTaskInstanceCommentDataEvent) event;
UserTaskInstanceCommentEventBody body = data.getData();
Map<String, Object> comment = new HashMap<>();
comment.put("id", body.getCommentId());
comment.put("content", body.getCommentContent());
comment.put("updatedBy", body.getEventUser());
comment.put("updatedAt", body.getEventDate());
if (body.getEventType() == UserTaskInstanceCommentEventBody.EVENT_TYPE_DELETED) {
comment.put("remove", true);
}
ArrayNode arrayNode = json.withArray("comments");
arrayNode.add(getObjectMapper().valueToTree(comment));
}
return json;
}