From 9f88030b31f9345a575ee9fa39848da9a9b85c9e Mon Sep 17 00:00:00 2001 From: Quaternions Date: Wed, 11 Jun 2025 15:59:13 -0700 Subject: [PATCH 01/10] submissions: deduplicate ListAuditEvents --- pkg/service/audit_events.go | 100 +++++++++++------------------------- 1 file changed, 30 insertions(+), 70 deletions(-) diff --git a/pkg/service/audit_events.go b/pkg/service/audit_events.go index 8dfaf6e..31ae607 100644 --- a/pkg/service/audit_events.go +++ b/pkg/service/audit_events.go @@ -73,21 +73,13 @@ func (svc *Service) CreateMapfixAuditComment(ctx context.Context, req api.Create return nil } -// ListMapfixAuditEvents invokes listMapfixAuditEvents operation. -// -// Retrieve a list of audit events. -// -// GET /mapfixes/{MapfixID}/audit-events -func (svc *Service) ListMapfixAuditEvents(ctx context.Context, params api.ListMapfixAuditEventsParams) ([]api.AuditEvent, error) { +func (svc *Service) ListAuditEvents(ctx context.Context, resource_type model.ResourceType, resource_id int64, page model.Page) ([]api.AuditEvent, error){ filter := datastore.Optional() - filter.Add("resource_type", model.ResourceMapfix) - filter.Add("resource_id", params.MapfixID) + filter.Add("resource_type", resource_type) + filter.Add("resource_id", resource_id) - items, err := svc.DB.AuditEvents().List(ctx, filter, model.Page{ - Number: params.Page, - Size: params.Limit, - }) + items, err := svc.DB.AuditEvents().List(ctx, filter, page) if err != nil { return nil, err } @@ -139,6 +131,23 @@ func (svc *Service) ListMapfixAuditEvents(ctx context.Context, params api.ListMa return resp, nil } +// ListMapfixAuditEvents invokes listMapfixAuditEvents operation. +// +// Retrieve a list of audit events. +// +// GET /mapfixes/{MapfixID}/audit-events +func (svc *Service) ListMapfixAuditEvents(ctx context.Context, params api.ListMapfixAuditEventsParams) ([]api.AuditEvent, error) { + return svc.ListAuditEvents( + ctx, + model.ResourceMapfix, + params.MapfixID, + model.Page{ + Number: params.Page, + Size: params.Limit, + }, + ) +} + // CreateSubmissionAuditComment implements createSubmissionAuditComment operation. // // Post a comment to the audit log @@ -207,62 +216,13 @@ func (svc *Service) CreateSubmissionAuditComment(ctx context.Context, req api.Cr // // GET /submissions/{SubmissionID}/audit-events func (svc *Service) ListSubmissionAuditEvents(ctx context.Context, params api.ListSubmissionAuditEventsParams) ([]api.AuditEvent, error) { - filter := datastore.Optional() - - filter.Add("resource_type", model.ResourceSubmission) - filter.Add("resource_id", params.SubmissionID) - - items, err := svc.DB.AuditEvents().List(ctx, filter, model.Page{ - Number: params.Page, - Size: params.Limit, - }) - if err != nil { - return nil, err - } - - idMap := make(map[int64]bool) - for _, item := range items { - idMap[int64(item.User)] = true - } - - var idList users.IdList - idList.ID = make([]int64,len(idMap)) - for userId := range idMap { - idList.ID = append(idList.ID, userId) - } - - userList, err := svc.Users.GetList(ctx, &idList) - if err != nil { - return nil, err - } - - userMap := make(map[int64]*users.UserResponse) - for _,user := range userList.Users { - userMap[user.ID] = user - } - - var resp []api.AuditEvent - for _, item := range items { - EventData := api.AuditEventEventData{} - err = EventData.UnmarshalJSON(item.EventData) - if err != nil { - return nil, err - } - username := "" - if userMap[int64(item.User)] != nil { - username = userMap[int64(item.User)].Username - } - resp = append(resp, api.AuditEvent{ - ID: item.ID, - Date: item.CreatedAt.Unix(), - User: int64(item.User), - Username: username, - ResourceType: int32(item.ResourceType), - ResourceID: item.ResourceID, - EventType: int32(item.EventType), - EventData: EventData, - }) - } - - return resp, nil + return svc.ListAuditEvents( + ctx, + model.ResourceSubmission, + params.SubmissionID, + model.Page{ + Number: params.Page, + Size: params.Limit, + }, + ) } -- 2.49.1 From 023f6c95af9ddac87cda3824ffc4871e942f36d6 Mon Sep 17 00:00:00 2001 From: Quaternions Date: Wed, 11 Jun 2025 16:05:32 -0700 Subject: [PATCH 02/10] submissions: resource model --- pkg/model/resource.go | 8 ++++++++ pkg/model/script.go | 7 ------- 2 files changed, 8 insertions(+), 7 deletions(-) create mode 100644 pkg/model/resource.go diff --git a/pkg/model/resource.go b/pkg/model/resource.go new file mode 100644 index 0000000..d8bf411 --- /dev/null +++ b/pkg/model/resource.go @@ -0,0 +1,8 @@ +package model + +type ResourceType int32 +const ( + ResourceUnknown ResourceType = 0 + ResourceMapfix ResourceType = 1 + ResourceSubmission ResourceType = 2 +) diff --git a/pkg/model/script.go b/pkg/model/script.go index 61b011e..f2d7ade 100644 --- a/pkg/model/script.go +++ b/pkg/model/script.go @@ -23,13 +23,6 @@ func HashParse(hash string) (uint64, error){ return strconv.ParseUint(hash, 16, 64) } -type ResourceType int32 -const ( - ResourceUnknown ResourceType = 0 - ResourceMapfix ResourceType = 1 - ResourceSubmission ResourceType = 2 -) - type Script struct { ID int64 `gorm:"primaryKey"` Name string -- 2.49.1 From cfa161ddbfdf77fcc6a55f675cf7ef24c171507e Mon Sep 17 00:00:00 2001 From: Quaternions Date: Wed, 11 Jun 2025 16:08:19 -0700 Subject: [PATCH 03/10] submissions: Resource struct --- pkg/model/resource.go | 5 +++++ pkg/service/audit_events.go | 18 +++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/pkg/model/resource.go b/pkg/model/resource.go index d8bf411..712f528 100644 --- a/pkg/model/resource.go +++ b/pkg/model/resource.go @@ -6,3 +6,8 @@ const ( ResourceMapfix ResourceType = 1 ResourceSubmission ResourceType = 2 ) + +type Resource struct{ + ID int64 + Type ResourceType +} diff --git a/pkg/service/audit_events.go b/pkg/service/audit_events.go index 31ae607..5772a4d 100644 --- a/pkg/service/audit_events.go +++ b/pkg/service/audit_events.go @@ -73,11 +73,11 @@ func (svc *Service) CreateMapfixAuditComment(ctx context.Context, req api.Create return nil } -func (svc *Service) ListAuditEvents(ctx context.Context, resource_type model.ResourceType, resource_id int64, page model.Page) ([]api.AuditEvent, error){ +func (svc *Service) ListAuditEvents(ctx context.Context, resource model.Resource, page model.Page) ([]api.AuditEvent, error){ filter := datastore.Optional() - filter.Add("resource_type", resource_type) - filter.Add("resource_id", resource_id) + filter.Add("resource_type", resource.Type) + filter.Add("resource_id", resource.ID) items, err := svc.DB.AuditEvents().List(ctx, filter, page) if err != nil { @@ -139,8 +139,10 @@ func (svc *Service) ListAuditEvents(ctx context.Context, resource_type model.Res func (svc *Service) ListMapfixAuditEvents(ctx context.Context, params api.ListMapfixAuditEventsParams) ([]api.AuditEvent, error) { return svc.ListAuditEvents( ctx, - model.ResourceMapfix, - params.MapfixID, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, model.Page{ Number: params.Page, Size: params.Limit, @@ -218,8 +220,10 @@ func (svc *Service) CreateSubmissionAuditComment(ctx context.Context, req api.Cr func (svc *Service) ListSubmissionAuditEvents(ctx context.Context, params api.ListSubmissionAuditEventsParams) ([]api.AuditEvent, error) { return svc.ListAuditEvents( ctx, - model.ResourceSubmission, - params.SubmissionID, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, model.Page{ Number: params.Page, Size: params.Limit, -- 2.49.1 From 7b17b79f25a9c770e9a9d7ca782e1c1c1764b87b Mon Sep 17 00:00:00 2001 From: Quaternions Date: Wed, 11 Jun 2025 16:14:33 -0700 Subject: [PATCH 04/10] submissions: move code to correct file --- pkg/service/audit_events.go | 164 ------------------------------------ pkg/service/mapfixes.go | 82 ++++++++++++++++++ pkg/service/submissions.go | 82 ++++++++++++++++++ 3 files changed, 164 insertions(+), 164 deletions(-) diff --git a/pkg/service/audit_events.go b/pkg/service/audit_events.go index 5772a4d..bac8b09 100644 --- a/pkg/service/audit_events.go +++ b/pkg/service/audit_events.go @@ -2,8 +2,6 @@ package service import ( "context" - "encoding/json" - "io" "git.itzana.me/strafesnet/go-grpc/users" "git.itzana.me/strafesnet/maps-service/pkg/api" @@ -11,68 +9,6 @@ import ( "git.itzana.me/strafesnet/maps-service/pkg/model" ) -// CreateMapfixAuditComment implements createMapfixAuditComment operation. -// -// Post a comment to the audit log -// -// POST /mapfixes/{MapfixID}/comment -func (svc *Service) CreateMapfixAuditComment(ctx context.Context, req api.CreateMapfixAuditCommentReq, params api.CreateMapfixAuditCommentParams) (error) { - userInfo, ok := ctx.Value("UserInfo").(UserInfoHandle) - if !ok { - return ErrUserInfo - } - - has_role, err := userInfo.HasRoleMapfixReview() - if err != nil { - return err - } - - userId, err := userInfo.GetUserID() - if err != nil { - return err - } - - if !has_role { - // Submitter has special permission to comment on their mapfix - mapfix, err := svc.DB.Mapfixes().Get(ctx, params.MapfixID) - if err != nil { - return err - } - - if mapfix.Submitter != userId { - return ErrPermissionDeniedNeedRoleMapfixReview - } - } - - data, err := io.ReadAll(req) - if err != nil { - return err - } - - event_data := model.AuditEventDataComment{ - Comment: string(data), - } - - 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.AuditEventTypeComment, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil -} - func (svc *Service) ListAuditEvents(ctx context.Context, resource model.Resource, page model.Page) ([]api.AuditEvent, error){ filter := datastore.Optional() @@ -130,103 +66,3 @@ func (svc *Service) ListAuditEvents(ctx context.Context, resource model.Resource return resp, nil } - -// ListMapfixAuditEvents invokes listMapfixAuditEvents operation. -// -// Retrieve a list of audit events. -// -// GET /mapfixes/{MapfixID}/audit-events -func (svc *Service) ListMapfixAuditEvents(ctx context.Context, params api.ListMapfixAuditEventsParams) ([]api.AuditEvent, error) { - return svc.ListAuditEvents( - ctx, - model.Resource{ - ID: params.MapfixID, - Type: model.ResourceMapfix, - }, - model.Page{ - Number: params.Page, - Size: params.Limit, - }, - ) -} - -// CreateSubmissionAuditComment implements createSubmissionAuditComment operation. -// -// Post a comment to the audit log -// -// POST /submissions/{SubmissionID}/comment -func (svc *Service) CreateSubmissionAuditComment(ctx context.Context, req api.CreateSubmissionAuditCommentReq, params api.CreateSubmissionAuditCommentParams) (error) { - userInfo, ok := ctx.Value("UserInfo").(UserInfoHandle) - if !ok { - return ErrUserInfo - } - - has_role, err := userInfo.HasRoleSubmissionReview() - if err != nil { - return err - } - - userId, err := userInfo.GetUserID() - if err != nil { - return err - } - - if !has_role { - // Submitter has special permission to comment on their submission - submission, err := svc.DB.Submissions().Get(ctx, params.SubmissionID) - if err != nil { - return err - } - - if submission.Submitter != userId { - return ErrPermissionDeniedNeedRoleSubmissionReview - } - } - - data, err := io.ReadAll(req) - if err != nil { - return err - } - - event_data := model.AuditEventDataComment{ - Comment: string(data), - } - - 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.ResourceSubmission, - ResourceID: params.SubmissionID, - EventType: model.AuditEventTypeComment, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil -} - -// ListSubmissionAuditEvents invokes listSubmissionAuditEvents operation. -// -// Retrieve a list of audit events. -// -// GET /submissions/{SubmissionID}/audit-events -func (svc *Service) ListSubmissionAuditEvents(ctx context.Context, params api.ListSubmissionAuditEventsParams) ([]api.AuditEvent, error) { - return svc.ListAuditEvents( - ctx, - model.Resource{ - ID: params.SubmissionID, - Type: model.ResourceSubmission, - }, - model.Page{ - Number: params.Page, - Size: params.Limit, - }, - ) -} diff --git a/pkg/service/mapfixes.go b/pkg/service/mapfixes.go index c43f708..732ecf1 100644 --- a/pkg/service/mapfixes.go +++ b/pkg/service/mapfixes.go @@ -5,6 +5,7 @@ import ( "encoding/json" "errors" "fmt" + "io" "time" "git.itzana.me/strafesnet/go-grpc/maps" @@ -1106,3 +1107,84 @@ func (svc *Service) ActionMapfixAccepted(ctx context.Context, params api.ActionM return nil } + +// CreateMapfixAuditComment implements createMapfixAuditComment operation. +// +// Post a comment to the audit log +// +// POST /mapfixes/{MapfixID}/comment +func (svc *Service) CreateMapfixAuditComment(ctx context.Context, req api.CreateMapfixAuditCommentReq, params api.CreateMapfixAuditCommentParams) (error) { + userInfo, ok := ctx.Value("UserInfo").(UserInfoHandle) + if !ok { + return ErrUserInfo + } + + has_role, err := userInfo.HasRoleMapfixReview() + if err != nil { + return err + } + + userId, err := userInfo.GetUserID() + if err != nil { + return err + } + + if !has_role { + // Submitter has special permission to comment on their mapfix + mapfix, err := svc.DB.Mapfixes().Get(ctx, params.MapfixID) + if err != nil { + return err + } + + if mapfix.Submitter != userId { + return ErrPermissionDeniedNeedRoleMapfixReview + } + } + + data, err := io.ReadAll(req) + if err != nil { + return err + } + + event_data := model.AuditEventDataComment{ + Comment: string(data), + } + + 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.AuditEventTypeComment, + EventData: EventData, + }) + if err != nil { + return err + } + + return nil +} + +// ListMapfixAuditEvents invokes listMapfixAuditEvents operation. +// +// Retrieve a list of audit events. +// +// GET /mapfixes/{MapfixID}/audit-events +func (svc *Service) ListMapfixAuditEvents(ctx context.Context, params api.ListMapfixAuditEventsParams) ([]api.AuditEvent, error) { + return svc.ListAuditEvents( + ctx, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + model.Page{ + Number: params.Page, + Size: params.Limit, + }, + ) +} diff --git a/pkg/service/submissions.go b/pkg/service/submissions.go index b2f0538..39b5585 100644 --- a/pkg/service/submissions.go +++ b/pkg/service/submissions.go @@ -5,6 +5,7 @@ import ( "encoding/json" "errors" "fmt" + "io" "time" "git.itzana.me/strafesnet/go-grpc/maps" @@ -1239,3 +1240,84 @@ func (svc *Service) ReleaseSubmissions(ctx context.Context, request []api.Releas return nil } + +// CreateSubmissionAuditComment implements createSubmissionAuditComment operation. +// +// Post a comment to the audit log +// +// POST /submissions/{SubmissionID}/comment +func (svc *Service) CreateSubmissionAuditComment(ctx context.Context, req api.CreateSubmissionAuditCommentReq, params api.CreateSubmissionAuditCommentParams) (error) { + userInfo, ok := ctx.Value("UserInfo").(UserInfoHandle) + if !ok { + return ErrUserInfo + } + + has_role, err := userInfo.HasRoleSubmissionReview() + if err != nil { + return err + } + + userId, err := userInfo.GetUserID() + if err != nil { + return err + } + + if !has_role { + // Submitter has special permission to comment on their submission + submission, err := svc.DB.Submissions().Get(ctx, params.SubmissionID) + if err != nil { + return err + } + + if submission.Submitter != userId { + return ErrPermissionDeniedNeedRoleSubmissionReview + } + } + + data, err := io.ReadAll(req) + if err != nil { + return err + } + + event_data := model.AuditEventDataComment{ + Comment: string(data), + } + + 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.ResourceSubmission, + ResourceID: params.SubmissionID, + EventType: model.AuditEventTypeComment, + EventData: EventData, + }) + if err != nil { + return err + } + + return nil +} + +// ListSubmissionAuditEvents invokes listSubmissionAuditEvents operation. +// +// Retrieve a list of audit events. +// +// GET /submissions/{SubmissionID}/audit-events +func (svc *Service) ListSubmissionAuditEvents(ctx context.Context, params api.ListSubmissionAuditEventsParams) ([]api.AuditEvent, error) { + return svc.ListAuditEvents( + ctx, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + model.Page{ + Number: params.Page, + Size: params.Limit, + }, + ) +} -- 2.49.1 From 9dafb74eb8ab467d2536d51bf20b7a923197bd4c Mon Sep 17 00:00:00 2001 From: Quaternions Date: Wed, 11 Jun 2025 16:20:56 -0700 Subject: [PATCH 05/10] submissions: CreateAuditEventChangeModel --- pkg/service/audit_events.go | 22 ++++++++++++++++++++++ pkg/service/mapfixes.go | 27 +++++++++------------------ pkg/service/submissions.go | 27 +++++++++------------------ 3 files changed, 40 insertions(+), 36 deletions(-) diff --git a/pkg/service/audit_events.go b/pkg/service/audit_events.go index bac8b09..7ce5a14 100644 --- a/pkg/service/audit_events.go +++ b/pkg/service/audit_events.go @@ -2,6 +2,7 @@ package service import ( "context" + "encoding/json" "git.itzana.me/strafesnet/go-grpc/users" "git.itzana.me/strafesnet/maps-service/pkg/api" @@ -66,3 +67,24 @@ func (svc *Service) ListAuditEvents(ctx context.Context, resource model.Resource return resp, nil } + +func (svc *Service) CreateAuditEventChangeModel(ctx context.Context, userId uint64, resource model.Resource, event_data model.AuditEventDataChangeModel) error { + EventData, err := json.Marshal(event_data) + if err != nil { + return err + } + + _, err = svc.DB.AuditEvents().Create(ctx, model.AuditEvent{ + ID: 0, + User: userId, + ResourceType: resource.Type, + ResourceID: resource.ID, + EventType: model.AuditEventTypeChangeModel, + EventData: EventData, + }) + if err != nil { + return err + } + + return nil +} diff --git a/pkg/service/mapfixes.go b/pkg/service/mapfixes.go index 732ecf1..95d5ecd 100644 --- a/pkg/service/mapfixes.go +++ b/pkg/service/mapfixes.go @@ -299,24 +299,15 @@ func (svc *Service) UpdateMapfixModel(ctx context.Context, params api.UpdateMapf NewModelVersion: NewModelVersion, } - 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.AuditEventTypeChangeModel, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventChangeModel( + ctx, + userId, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + event_data, + ) } // ActionMapfixReject invokes actionMapfixReject operation. diff --git a/pkg/service/submissions.go b/pkg/service/submissions.go index 39b5585..06dae4e 100644 --- a/pkg/service/submissions.go +++ b/pkg/service/submissions.go @@ -366,24 +366,15 @@ func (svc *Service) UpdateSubmissionModel(ctx context.Context, params api.Update NewModelVersion: NewModelVersion, } - 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.ResourceSubmission, - ResourceID: submission.ID, - EventType: model.AuditEventTypeChangeModel, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventChangeModel( + ctx, + userId, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) } // ActionSubmissionReject invokes actionSubmissionReject operation. -- 2.49.1 From 7c0e5cc2d51b932af8dad21ea1d00f81f6fecae1 Mon Sep 17 00:00:00 2001 From: Quaternions Date: Wed, 11 Jun 2025 16:33:54 -0700 Subject: [PATCH 06/10] submissions: CreateAuditEventAction --- pkg/service/audit_events.go | 20 +++ pkg/service/mapfixes.go | 297 ++++++++++++------------------------ pkg/service/submissions.go | 297 ++++++++++++------------------------ 3 files changed, 218 insertions(+), 396 deletions(-) diff --git a/pkg/service/audit_events.go b/pkg/service/audit_events.go index 7ce5a14..3871882 100644 --- a/pkg/service/audit_events.go +++ b/pkg/service/audit_events.go @@ -68,6 +68,26 @@ func (svc *Service) ListAuditEvents(ctx context.Context, resource model.Resource return resp, nil } +func (svc *Service) CreateAuditEventAction(ctx context.Context, userId uint64, resource model.Resource, event_data model.AuditEventDataAction) error { + EventData, err := json.Marshal(event_data) + if err != nil { + return err + } + + _, err = svc.DB.AuditEvents().Create(ctx, model.AuditEvent{ + ID: 0, + User: userId, + ResourceType: resource.Type, + ResourceID: resource.ID, + EventType: model.AuditEventTypeAction, + EventData: EventData, + }) + if err != nil { + return err + } + + return nil +} func (svc *Service) CreateAuditEventChangeModel(ctx context.Context, userId uint64, resource model.Resource, event_data model.AuditEventDataChangeModel) error { EventData, err := json.Marshal(event_data) if err != nil { diff --git a/pkg/service/mapfixes.go b/pkg/service/mapfixes.go index 95d5ecd..6266d2e 100644 --- a/pkg/service/mapfixes.go +++ b/pkg/service/mapfixes.go @@ -348,24 +348,15 @@ func (svc *Service) ActionMapfixReject(ctx context.Context, params api.ActionMap 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 + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + event_data, + ) } // ActionMapfixRequestChanges invokes actionMapfixRequestChanges operation. @@ -406,24 +397,15 @@ func (svc *Service) ActionMapfixRequestChanges(ctx context.Context, params api.A 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 + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + event_data, + ) } // ActionMapfixRevoke invokes actionMapfixRevoke operation. @@ -467,24 +449,15 @@ func (svc *Service) ActionMapfixRevoke(ctx context.Context, params api.ActionMap 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 + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + event_data, + ) } // ActionMapfixTriggerSubmit invokes actionMapfixTriggerSubmit operation. @@ -543,24 +516,15 @@ func (svc *Service) ActionMapfixTriggerSubmit(ctx context.Context, params api.Ac 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 + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + event_data, + ) } // ActionMapfixBypassSubmit invokes actionMapfixBypassSubmit operation. @@ -613,24 +577,15 @@ func (svc *Service) ActionMapfixBypassSubmit(ctx context.Context, params api.Act 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 + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + event_data, + ) } // ActionMapfixResetSubmitting implements actionMapfixResetSubmitting operation. @@ -678,24 +633,15 @@ func (svc *Service) ActionMapfixResetSubmitting(ctx context.Context, params api. 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 + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + event_data, + ) } // ActionMapfixTriggerUpload invokes actionMapfixTriggerUpload operation. @@ -754,24 +700,15 @@ func (svc *Service) ActionMapfixTriggerUpload(ctx context.Context, params api.Ac 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 + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + event_data, + ) } // ActionMapfixValidate invokes actionMapfixValidate operation. @@ -822,24 +759,15 @@ func (svc *Service) ActionMapfixValidated(ctx context.Context, params api.Action 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 + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + event_data, + ) } // ActionMapfixTriggerValidate invokes actionMapfixTriggerValidate operation. @@ -931,24 +859,15 @@ func (svc *Service) ActionMapfixTriggerValidate(ctx context.Context, params api. 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 + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + event_data, + ) } // ActionMapfixRetryValidate invokes actionMapfixRetryValidate operation. @@ -1011,24 +930,15 @@ func (svc *Service) ActionMapfixRetryValidate(ctx context.Context, params api.Ac 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 + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + event_data, + ) } // ActionMapfixAccepted implements actionMapfixAccepted operation. @@ -1079,24 +989,15 @@ func (svc *Service) ActionMapfixAccepted(ctx context.Context, params api.ActionM 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 + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + event_data, + ) } // CreateMapfixAuditComment implements createMapfixAuditComment operation. diff --git a/pkg/service/submissions.go b/pkg/service/submissions.go index 06dae4e..dd04972 100644 --- a/pkg/service/submissions.go +++ b/pkg/service/submissions.go @@ -415,24 +415,15 @@ func (svc *Service) ActionSubmissionReject(ctx context.Context, params api.Actio 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.ResourceSubmission, - ResourceID: params.SubmissionID, - EventType: model.AuditEventTypeAction, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) } // ActionSubmissionRequestChanges invokes actionSubmissionRequestChanges operation. @@ -473,24 +464,15 @@ func (svc *Service) ActionSubmissionRequestChanges(ctx context.Context, params a 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.ResourceSubmission, - ResourceID: params.SubmissionID, - EventType: model.AuditEventTypeAction, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) } // ActionSubmissionRevoke invokes actionSubmissionRevoke operation. @@ -534,24 +516,15 @@ func (svc *Service) ActionSubmissionRevoke(ctx context.Context, params api.Actio 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.ResourceSubmission, - ResourceID: params.SubmissionID, - EventType: model.AuditEventTypeAction, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) } // ActionSubmissionTriggerSubmit invokes actionSubmissionTriggerSubmit operation. @@ -618,24 +591,15 @@ func (svc *Service) ActionSubmissionTriggerSubmit(ctx context.Context, params ap 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.ResourceSubmission, - ResourceID: params.SubmissionID, - EventType: model.AuditEventTypeAction, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) } // ActionSubmissionBypassSubmit invokes actionSubmissionBypassSubmit operation. @@ -688,24 +652,15 @@ func (svc *Service) ActionSubmissionBypassSubmit(ctx context.Context, params api 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.ResourceSubmission, - ResourceID: params.SubmissionID, - EventType: model.AuditEventTypeAction, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) } // ActionSubmissionResetSubmitting implements actionSubmissionResetSubmitting operation. @@ -753,24 +708,15 @@ func (svc *Service) ActionSubmissionResetSubmitting(ctx context.Context, params 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.ResourceSubmission, - ResourceID: params.SubmissionID, - EventType: model.AuditEventTypeAction, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) } // ActionSubmissionTriggerUpload invokes actionSubmissionTriggerUpload operation. @@ -836,24 +782,15 @@ func (svc *Service) ActionSubmissionTriggerUpload(ctx context.Context, params ap 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.ResourceSubmission, - ResourceID: params.SubmissionID, - EventType: model.AuditEventTypeAction, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) } // ActionSubmissionValidate invokes actionSubmissionValidate operation. @@ -904,24 +841,15 @@ func (svc *Service) ActionSubmissionValidated(ctx context.Context, params api.Ac 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.ResourceSubmission, - ResourceID: params.SubmissionID, - EventType: model.AuditEventTypeAction, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) } // ActionSubmissionTriggerValidate invokes actionSubmissionTriggerValidate operation. @@ -996,24 +924,15 @@ func (svc *Service) ActionSubmissionTriggerValidate(ctx context.Context, params 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.ResourceSubmission, - ResourceID: params.SubmissionID, - EventType: model.AuditEventTypeAction, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) } // ActionSubmissionRetryValidate invokes actionSubmissionRetryValidate operation. @@ -1076,24 +995,15 @@ func (svc *Service) ActionSubmissionRetryValidate(ctx context.Context, params ap 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.ResourceSubmission, - ResourceID: params.SubmissionID, - EventType: model.AuditEventTypeAction, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) } // ActionSubmissionAccepted implements actionSubmissionAccepted operation. @@ -1144,24 +1054,15 @@ func (svc *Service) ActionSubmissionAccepted(ctx context.Context, params api.Act 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.ResourceSubmission, - ResourceID: params.SubmissionID, - EventType: model.AuditEventTypeAction, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventAction( + ctx, + userId, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) } // ReleaseSubmissions invokes releaseSubmissions operation. -- 2.49.1 From d8367c120af289fc663f40b3cf0d28dbd2df3ab1 Mon Sep 17 00:00:00 2001 From: Quaternions Date: Wed, 11 Jun 2025 16:34:42 -0700 Subject: [PATCH 07/10] submissions: CreateAuditEventComment --- pkg/service/audit_events.go | 22 ++++++++++++++++++++++ pkg/service/mapfixes.go | 27 +++++++++------------------ pkg/service/submissions.go | 27 +++++++++------------------ 3 files changed, 40 insertions(+), 36 deletions(-) diff --git a/pkg/service/audit_events.go b/pkg/service/audit_events.go index 3871882..d8ab5a6 100644 --- a/pkg/service/audit_events.go +++ b/pkg/service/audit_events.go @@ -88,6 +88,28 @@ func (svc *Service) CreateAuditEventAction(ctx context.Context, userId uint64, r return nil } + +func (svc *Service) CreateAuditEventComment(ctx context.Context, userId uint64, resource model.Resource, event_data model.AuditEventDataComment) error { + EventData, err := json.Marshal(event_data) + if err != nil { + return err + } + + _, err = svc.DB.AuditEvents().Create(ctx, model.AuditEvent{ + ID: 0, + User: userId, + ResourceType: resource.Type, + ResourceID: resource.ID, + EventType: model.AuditEventTypeComment, + EventData: EventData, + }) + if err != nil { + return err + } + + return nil +} + func (svc *Service) CreateAuditEventChangeModel(ctx context.Context, userId uint64, resource model.Resource, event_data model.AuditEventDataChangeModel) error { EventData, err := json.Marshal(event_data) if err != nil { diff --git a/pkg/service/mapfixes.go b/pkg/service/mapfixes.go index 6266d2e..4c40393 100644 --- a/pkg/service/mapfixes.go +++ b/pkg/service/mapfixes.go @@ -1042,24 +1042,15 @@ func (svc *Service) CreateMapfixAuditComment(ctx context.Context, req api.Create Comment: string(data), } - 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.AuditEventTypeComment, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventComment( + ctx, + userId, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + event_data, + ) } // ListMapfixAuditEvents invokes listMapfixAuditEvents operation. diff --git a/pkg/service/submissions.go b/pkg/service/submissions.go index dd04972..dc4543e 100644 --- a/pkg/service/submissions.go +++ b/pkg/service/submissions.go @@ -1175,24 +1175,15 @@ func (svc *Service) CreateSubmissionAuditComment(ctx context.Context, req api.Cr Comment: string(data), } - 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.ResourceSubmission, - ResourceID: params.SubmissionID, - EventType: model.AuditEventTypeComment, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventComment( + ctx, + userId, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) } // ListSubmissionAuditEvents invokes listSubmissionAuditEvents operation. -- 2.49.1 From 0b5bc715aafcebb0ea5ba58457bfdcbb9e8fca90 Mon Sep 17 00:00:00 2001 From: Quaternions Date: Wed, 11 Jun 2025 17:08:29 -0700 Subject: [PATCH 08/10] submissions: CreateAuditEventAction (internal) --- pkg/service_internal/audit_events.go | 30 ++++++ pkg/service_internal/mapfixes.go | 108 +++++++-------------- pkg/service_internal/submissions.go | 135 +++++++++------------------ 3 files changed, 111 insertions(+), 162 deletions(-) create mode 100644 pkg/service_internal/audit_events.go diff --git a/pkg/service_internal/audit_events.go b/pkg/service_internal/audit_events.go new file mode 100644 index 0000000..2071eab --- /dev/null +++ b/pkg/service_internal/audit_events.go @@ -0,0 +1,30 @@ +package service_internal + +import ( + "context" + "encoding/json" + + "git.itzana.me/strafesnet/maps-service/pkg/model" +) + +func (svc *Service) CreateAuditEventAction(ctx context.Context, userId uint64, resource model.Resource, event_data model.AuditEventDataAction) error { + EventData, err := json.Marshal(event_data) + if err != nil { + return err + } + + _, err = svc.DB.AuditEvents().Create(ctx, model.AuditEvent{ + ID: 0, + User: userId, + ResourceType: resource.Type, + ResourceID: resource.ID, + EventType: model.AuditEventTypeAction, + EventData: EventData, + }) + if err != nil { + return err + } + + return nil +} + diff --git a/pkg/service_internal/mapfixes.go b/pkg/service_internal/mapfixes.go index e6a4e74..7e66e78 100644 --- a/pkg/service_internal/mapfixes.go +++ b/pkg/service_internal/mapfixes.go @@ -97,24 +97,15 @@ func (svc *Service) ActionMapfixSubmitted(ctx context.Context, params internal.A 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: ValidtorUserID, - ResourceType: model.ResourceMapfix, - ResourceID: params.MapfixID, - EventType: model.AuditEventTypeAction, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventAction( + ctx, + ValidtorUserID, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + event_data, + ) } // ActionMapfixRequestChanges implements actionMapfixRequestChanges operation. @@ -159,24 +150,15 @@ func (svc *Service) ActionMapfixRequestChanges(ctx context.Context, params inter 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: ValidtorUserID, - ResourceType: model.ResourceMapfix, - ResourceID: params.MapfixID, - EventType: model.AuditEventTypeAction, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventAction( + ctx, + ValidtorUserID, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + event_data, + ) } // ActionMapfixValidate invokes actionMapfixValidate operation. @@ -235,24 +217,15 @@ func (svc *Service) ActionMapfixAccepted(ctx context.Context, params internal.Ac 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: ValidtorUserID, - ResourceType: model.ResourceMapfix, - ResourceID: params.MapfixID, - EventType: model.AuditEventTypeAction, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventAction( + ctx, + ValidtorUserID, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + event_data, + ) } // ActionMapfixUploaded implements actionMapfixUploaded operation. @@ -274,24 +247,15 @@ func (svc *Service) ActionMapfixUploaded(ctx context.Context, params internal.Ac 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: ValidtorUserID, - ResourceType: model.ResourceMapfix, - ResourceID: params.MapfixID, - EventType: model.AuditEventTypeAction, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventAction( + ctx, + ValidtorUserID, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + event_data, + ) } // POST /mapfixes diff --git a/pkg/service_internal/submissions.go b/pkg/service_internal/submissions.go index 1ce1e4c..b39942d 100644 --- a/pkg/service_internal/submissions.go +++ b/pkg/service_internal/submissions.go @@ -97,24 +97,15 @@ func (svc *Service) ActionSubmissionSubmitted(ctx context.Context, params intern 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: ValidtorUserID, - ResourceType: model.ResourceSubmission, - ResourceID: params.SubmissionID, - EventType: model.AuditEventTypeAction, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventAction( + ctx, + ValidtorUserID, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) } // ActionSubmissionRequestChanges implements actionSubmissionRequestChanges operation. @@ -161,24 +152,15 @@ func (svc *Service) ActionSubmissionRequestChanges(ctx context.Context, params i 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: ValidtorUserID, - ResourceType: model.ResourceSubmission, - ResourceID: params.SubmissionID, - EventType: model.AuditEventTypeAction, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventAction( + ctx, + ValidtorUserID, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) } // ActionSubmissionValidate invokes actionSubmissionValidate operation. @@ -200,24 +182,15 @@ func (svc *Service) ActionSubmissionValidated(ctx context.Context, params intern 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: ValidtorUserID, - ResourceType: model.ResourceSubmission, - ResourceID: params.SubmissionID, - EventType: model.AuditEventTypeAction, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventAction( + ctx, + ValidtorUserID, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) } // ActionSubmissionAccepted implements actionSubmissionAccepted operation. @@ -265,24 +238,15 @@ func (svc *Service) ActionSubmissionAccepted(ctx context.Context, params interna 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: ValidtorUserID, - ResourceType: model.ResourceSubmission, - ResourceID: params.SubmissionID, - EventType: model.AuditEventTypeAction, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventAction( + ctx, + ValidtorUserID, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) } // ActionSubmissionUploaded implements actionSubmissionUploaded operation. @@ -305,24 +269,15 @@ func (svc *Service) ActionSubmissionUploaded(ctx context.Context, params interna 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: ValidtorUserID, - ResourceType: model.ResourceSubmission, - ResourceID: params.SubmissionID, - EventType: model.AuditEventTypeAction, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventAction( + ctx, + ValidtorUserID, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) } // POST /submissions -- 2.49.1 From f54b9963b9713703b80b7cd863763c8795d05614 Mon Sep 17 00:00:00 2001 From: Quaternions Date: Wed, 11 Jun 2025 17:10:57 -0700 Subject: [PATCH 09/10] submissions: CreateAuditEventChangeValidatedModel (internal) --- pkg/service_internal/audit_events.go | 21 +++++++++++++++++++++ pkg/service_internal/mapfixes.go | 27 +++++++++------------------ pkg/service_internal/submissions.go | 27 +++++++++------------------ 3 files changed, 39 insertions(+), 36 deletions(-) diff --git a/pkg/service_internal/audit_events.go b/pkg/service_internal/audit_events.go index 2071eab..a1bf6cf 100644 --- a/pkg/service_internal/audit_events.go +++ b/pkg/service_internal/audit_events.go @@ -28,3 +28,24 @@ func (svc *Service) CreateAuditEventAction(ctx context.Context, userId uint64, r return nil } +func (svc *Service) CreateAuditEventChangeValidatedModel(ctx context.Context, userId uint64, resource model.Resource, event_data model.AuditEventDataChangeValidatedModel) error { + EventData, err := json.Marshal(event_data) + if err != nil { + return err + } + + _, err = svc.DB.AuditEvents().Create(ctx, model.AuditEvent{ + ID: 0, + User: userId, + ResourceType: resource.Type, + ResourceID: resource.ID, + EventType: model.AuditEventTypeChangeValidatedModel, + EventData: EventData, + }) + if err != nil { + return err + } + + return nil +} + diff --git a/pkg/service_internal/mapfixes.go b/pkg/service_internal/mapfixes.go index 7e66e78..b94cb5a 100644 --- a/pkg/service_internal/mapfixes.go +++ b/pkg/service_internal/mapfixes.go @@ -54,24 +54,15 @@ func (svc *Service) UpdateMapfixValidatedModel(ctx context.Context, params inter ValidatedModelVersion: ValidatedModelVersion, } - 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.AuditEventTypeChangeValidatedModel, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventChangeValidatedModel( + ctx, + ValidtorUserID, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + event_data, + ) } // ActionMapfixSubmitted invokes actionMapfixSubmitted operation. diff --git a/pkg/service_internal/submissions.go b/pkg/service_internal/submissions.go index b39942d..784f7b9 100644 --- a/pkg/service_internal/submissions.go +++ b/pkg/service_internal/submissions.go @@ -54,24 +54,15 @@ func (svc *Service) UpdateSubmissionValidatedModel(ctx context.Context, params i ValidatedModelVersion: ValidatedModelVersion, } - 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.AuditEventTypeChangeValidatedModel, - EventData: EventData, - }) - if err != nil { - return err - } - - return nil + return svc.CreateAuditEventChangeValidatedModel( + ctx, + ValidtorUserID, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) } // ActionSubmissionSubmitted invokes actionSubmissionSubmitted operation. -- 2.49.1 From a7e23ce2e73aead5e5ce7d0a5d78790cfb300a4f Mon Sep 17 00:00:00 2001 From: Quaternions Date: Wed, 11 Jun 2025 17:12:15 -0700 Subject: [PATCH 10/10] submissions: CreateAuditEventError (internal) --- pkg/service_internal/audit_events.go | 20 +++++++++++++ pkg/service_internal/mapfixes.go | 45 +++++++++++----------------- pkg/service_internal/submissions.go | 45 +++++++++++----------------- 3 files changed, 56 insertions(+), 54 deletions(-) diff --git a/pkg/service_internal/audit_events.go b/pkg/service_internal/audit_events.go index a1bf6cf..82e6dd6 100644 --- a/pkg/service_internal/audit_events.go +++ b/pkg/service_internal/audit_events.go @@ -49,3 +49,23 @@ func (svc *Service) CreateAuditEventChangeValidatedModel(ctx context.Context, us return nil } +func (svc *Service) CreateAuditEventError(ctx context.Context, userId uint64, resource model.Resource, event_data model.AuditEventDataError) error { + EventData, err := json.Marshal(event_data) + if err != nil { + return err + } + + _, err = svc.DB.AuditEvents().Create(ctx, model.AuditEvent{ + ID: 0, + User: userId, + ResourceType: resource.Type, + ResourceID: resource.ID, + EventType: model.AuditEventTypeError, + EventData: EventData, + }) + if err != nil { + return err + } + + return nil +} diff --git a/pkg/service_internal/mapfixes.go b/pkg/service_internal/mapfixes.go index b94cb5a..3a86ae9 100644 --- a/pkg/service_internal/mapfixes.go +++ b/pkg/service_internal/mapfixes.go @@ -2,7 +2,6 @@ package service_internal import ( "context" - "encoding/json" "errors" "fmt" @@ -119,19 +118,15 @@ func (svc *Service) ActionMapfixRequestChanges(ctx context.Context, params inter 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, - }) + err = svc.CreateAuditEventError( + ctx, + ValidtorUserID, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + event_data, + ) if err != nil { return err } @@ -185,19 +180,15 @@ func (svc *Service) ActionMapfixAccepted(ctx context.Context, params internal.Ac 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, - }) + err = svc.CreateAuditEventError( + ctx, + ValidtorUserID, + model.Resource{ + ID: params.MapfixID, + Type: model.ResourceMapfix, + }, + event_data, + ) if err != nil { return err } diff --git a/pkg/service_internal/submissions.go b/pkg/service_internal/submissions.go index 784f7b9..23d7415 100644 --- a/pkg/service_internal/submissions.go +++ b/pkg/service_internal/submissions.go @@ -2,7 +2,6 @@ package service_internal import ( "context" - "encoding/json" "errors" "fmt" @@ -120,19 +119,15 @@ func (svc *Service) ActionSubmissionRequestChanges(ctx context.Context, params i 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, - }) + err = svc.CreateAuditEventError( + ctx, + ValidtorUserID, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) if err != nil { return err } @@ -206,19 +201,15 @@ func (svc *Service) ActionSubmissionAccepted(ctx context.Context, params interna 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, - }) + err = svc.CreateAuditEventError( + ctx, + ValidtorUserID, + model.Resource{ + ID: params.SubmissionID, + Type: model.ResourceSubmission, + }, + event_data, + ) if err != nil { return err } -- 2.49.1