func SendOtelAuditEvent()

in http/server/otelaudit/otelaudit_helper.go [32:52]


func SendOtelAuditEvent(logger *slog.Logger, otelConfig *OtelConfig, ctx context.Context, statusCode int, req *http.Request, errorMsg string) {
	if otelConfig == nil || otelConfig.Client == nil {
		logger.Error("otel configuration or client is nil")
		return
	}

	if shouldExclude(req, otelConfig.ExcludeAuditEvents) {
		logger.Info(fmt.Sprintf("Exluding audit event. method: %s url: %s", req.Method, req.URL.String()))
		return
	}

	msg, err := createOtelAuditEvent(logger, statusCode, req, otelConfig, errorMsg)
	if err != nil {
		logger.Error("failed to create audit event", "error", err)
		return
	}

	if err := otelConfig.Client.Send(ctx, msg); err != nil {
		logger.Error("failed to send audit event", "error", err)
	}
}