diff --git a/pkg/service/mapfixes.go b/pkg/service/mapfixes.go index 4e69b52..c43f708 100644 --- a/pkg/service/mapfixes.go +++ b/pkg/service/mapfixes.go @@ -396,10 +396,42 @@ func (svc *Service) ActionMapfixRequestChanges(ctx context.Context, params api.A return ErrPermissionDeniedNeedRoleMapfixReview } + userId, err := userInfo.GetUserID() + if err != nil { + return err + } + // transaction + target_status := model.MapfixStatusChangesRequested smap := datastore.Optional() - smap.Add("status_id", model.MapfixStatusChangesRequested) - return svc.DB.Mapfixes().IfStatusThenUpdate(ctx, params.MapfixID, []model.MapfixStatus{model.MapfixStatusValidated, model.MapfixStatusAcceptedUnvalidated, model.MapfixStatusSubmitted}, smap) + smap.Add("status_id", target_status) + err = svc.DB.Mapfixes().IfStatusThenUpdate(ctx, params.MapfixID, []model.MapfixStatus{model.MapfixStatusValidated, model.MapfixStatusAcceptedUnvalidated, model.MapfixStatusSubmitted}, smap) + if err != nil { + return err + } + + event_data := model.AuditEventDataAction{ + TargetStatus: uint32(target_status), + } + + EventData, err := json.Marshal(event_data) + if err != nil { + return err + } + + _, err = svc.DB.AuditEvents().Create(ctx, model.AuditEvent{ + ID: 0, + User: userId, + ResourceType: model.ResourceMapfix, + ResourceID: params.MapfixID, + EventType: model.AuditEventTypeAction, + EventData: EventData, + }) + if err != nil { + return err + } + + return nil } // ActionMapfixRevoke invokes actionMapfixRevoke operation.