private Object prepareAndSendKafkaAudit()

in src/main/java/com/epam/digital/data/platform/kafkaapi/core/audit/KafkaAuditProcessor.java [79:105]


  private Object prepareAndSendKafkaAudit(ProceedingJoinPoint joinPoint, Request<?> request,
      String action) throws Throwable {

    EventType eventType = EventType.USER_ACTION;
    String methodName = joinPoint.getSignature().getName();

    log.debug("Sending {} event to Audit", action);
    kafkaEventsFacade.sendKafkaAudit(eventType, methodName, request, action, BEFORE, null);

    Object result = joinPoint.proceed();

    var resultStatus = ((Message<Response<?>>) result).getPayload().getStatus();

    if (resultStatus != null && auditableStatusToHandler.contains(resultStatus)) {
      eventType = EventType.SECURITY_EVENT;
    }

    log.debug("Sending {} completed event to Audit", action);
    kafkaEventsFacade.sendKafkaAudit(
        eventType,
        methodName,
        request,
        action,
        AFTER,
        Optional.ofNullable(resultStatus).map(Objects::toString).orElse(null));
    return result;
  }