in src/main/java/com/epam/digital/data/platform/starter/audit/converter/AuditToAvroConverter.java [38:67]
public AvroAuditEvent convert(AuditEvent auditEvent) {
String jsonContext;
try {
jsonContext = objectMapper.writeValueAsString(auditEvent.getContext());
} catch (JsonProcessingException e) {
throw new IllegalStateException("Couldn't serialize object", e);
}
var sourceInfo = Optional.ofNullable(auditEvent.getSourceInfo())
.orElse(new AuditSourceInfo());
var userInfo = Optional.ofNullable(auditEvent.getUserInfo())
.orElse(new AuditUserInfo());
return AvroAuditEvent.newBuilder()
.setRequestId(auditEvent.getRequestId())
.setApplicationName(auditEvent.getApplication())
.setName(auditEvent.getName())
.setSourceSystem(sourceInfo.getSystem())
.setSourceApplication(sourceInfo.getApplication())
.setSourceBusinessProcess(sourceInfo.getBusinessProcess())
.setSourceBusinessProcessDefinitionId(sourceInfo.getBusinessProcessDefinitionId())
.setSourceBusinessProcessInstanceId(sourceInfo.getBusinessProcessInstanceId())
.setSourceBusinessActivity(sourceInfo.getBusinessActivity())
.setSourceBusinessActivityId(sourceInfo.getBusinessActivityInstanceId())
.setType(auditEvent.getEventType().toString())
.setTimestamp(auditEvent.getCurrentTime())
.setUserName(userInfo.getUserName())
.setUserKeycloakId(userInfo.getUserKeycloakId())
.setUserDrfo(userInfo.getUserDrfo())
.setContext(jsonContext)
.build();
}