From ff9da333eba96185a5425cd068fce7aefdad19cd Mon Sep 17 00:00:00 2001
From: Quaternions <krakow20@gmail.com>
Date: Wed, 9 Apr 2025 20:14:19 -0700
Subject: [PATCH] submissions: push audit error event on error endpoints

---
 pkg/service_internal/mapfixes.go    | 48 +++++++++++++++++++++++++++
 pkg/service_internal/submissions.go | 51 +++++++++++++++++++++++++++++
 2 files changed, 99 insertions(+)

diff --git a/pkg/service_internal/mapfixes.go b/pkg/service_internal/mapfixes.go
index 7b2c906..c52c533 100644
--- a/pkg/service_internal/mapfixes.go
+++ b/pkg/service_internal/mapfixes.go
@@ -129,6 +129,29 @@ func (svc *Service) ActionMapfixRequestChanges(ctx context.Context, params inter
 		return err
 	}
 
+	{
+		event_data := model.AuditEventDataError{
+			Error: params.ErrorMessage,
+		}
+
+		EventData, err := json.Marshal(event_data)
+		if err != nil {
+			return err
+		}
+
+		_, err = svc.DB.AuditEvents().Create(ctx, model.AuditEvent{
+			ID:           0,
+			User:         ValidtorUserID,
+			ResourceType: model.ResourceMapfix,
+			ResourceID:   params.MapfixID,
+			EventType:    model.AuditEventTypeError,
+			EventData:    EventData,
+		})
+		if err != nil {
+			return err
+		}
+	}
+
 	event_data := model.AuditEventDataAction{
 		TargetStatus: uint32(target_status),
 	}
@@ -180,6 +203,31 @@ func (svc *Service) ActionMapfixAccepted(ctx context.Context, params internal.Ac
 		return err
 	}
 
+	//push an error audit event
+	{
+		event_data := model.AuditEventDataError{
+			Error: params.ErrorMessage,
+		}
+
+		EventData, err := json.Marshal(event_data)
+		if err != nil {
+			return err
+		}
+
+		_, err = svc.DB.AuditEvents().Create(ctx, model.AuditEvent{
+			ID:           0,
+			User:         ValidtorUserID,
+			ResourceType: model.ResourceMapfix,
+			ResourceID:   params.MapfixID,
+			EventType:    model.AuditEventTypeError,
+			EventData:    EventData,
+		})
+		if err != nil {
+			return err
+		}
+	}
+
+	// push an action audit event
 	event_data := model.AuditEventDataAction{
 		TargetStatus: uint32(target_status),
 	}
diff --git a/pkg/service_internal/submissions.go b/pkg/service_internal/submissions.go
index 647ec65..5e6abd0 100644
--- a/pkg/service_internal/submissions.go
+++ b/pkg/service_internal/submissions.go
@@ -128,6 +128,31 @@ func (svc *Service) ActionSubmissionRequestChanges(ctx context.Context, params i
 		return err
 	}
 
+	//push an error audit event
+	{
+		event_data := model.AuditEventDataError{
+			Error: params.ErrorMessage,
+		}
+
+		EventData, err := json.Marshal(event_data)
+		if err != nil {
+			return err
+		}
+
+		_, err = svc.DB.AuditEvents().Create(ctx, model.AuditEvent{
+			ID:           0,
+			User:         ValidtorUserID,
+			ResourceType: model.ResourceSubmission,
+			ResourceID:   params.SubmissionID,
+			EventType:    model.AuditEventTypeError,
+			EventData:    EventData,
+		})
+		if err != nil {
+			return err
+		}
+	}
+
+	// push an action audit event
 	event_data := model.AuditEventDataAction{
 		TargetStatus: uint32(target_status),
 	}
@@ -206,6 +231,32 @@ func (svc *Service) ActionSubmissionAccepted(ctx context.Context, params interna
 		return err
 	}
 
+
+	//push an error audit event
+	{
+		event_data := model.AuditEventDataError{
+			Error: params.ErrorMessage,
+		}
+
+		EventData, err := json.Marshal(event_data)
+		if err != nil {
+			return err
+		}
+
+		_, err = svc.DB.AuditEvents().Create(ctx, model.AuditEvent{
+			ID:           0,
+			User:         ValidtorUserID,
+			ResourceType: model.ResourceSubmission,
+			ResourceID:   params.SubmissionID,
+			EventType:    model.AuditEventTypeError,
+			EventData:    EventData,
+		})
+		if err != nil {
+			return err
+		}
+	}
+
+	// push an action audit event
 	event_data := model.AuditEventDataAction{
 		TargetStatus: uint32(target_status),
 	}