diff --git a/pkg/service/submissions.go b/pkg/service/submissions.go index 493041c..9d51176 100644 --- a/pkg/service/submissions.go +++ b/pkg/service/submissions.go @@ -101,22 +101,15 @@ func (svc *Service) CreateSubmission(ctx context.Context, request *api.Submissio return nil, err } - create_request := model.CreateSubmissionRequest{ - OperationID: operation.ID, - ModelID: ModelID, - DisplayName: request.DisplayName, - Creator: request.Creator, - GameID: uint32(request.GameID), - Status: uint32(model.SubmissionStatusUnderConstruction), - Roles: uint32(RolesEmpty), - } - - j, err := json.Marshal(create_request) - if err != nil { - return nil, err - } - - _, err = svc.Nats.Publish("maptest.submissions.create", []byte(j)) + err = svc.inner.NatsCreateSubmission( + operation.ID, + ModelID, + request.DisplayName, + request.Creator, + uint32(request.GameID), + uint32(model.SubmissionStatusUnderConstruction), + uint32(RolesEmpty), + ) if err != nil { return nil, err } @@ -177,22 +170,15 @@ func (svc *Service) CreateSubmissionAdmin(ctx context.Context, request *api.Subm return nil, err } - create_request := model.CreateSubmissionRequest{ - OperationID: operation.ID, - ModelID: ModelID, - DisplayName: request.DisplayName, - Creator: request.Creator, - GameID: uint32(request.GameID), - Status: uint32(model.SubmissionStatusChangesRequested), - Roles: uint32(roles), - } - - j, err := json.Marshal(create_request) - if err != nil { - return nil, err - } - - _, err = svc.Nats.Publish("maptest.submissions.create", []byte(j)) + err = svc.inner.NatsCreateSubmission( + operation.ID, + ModelID, + request.DisplayName, + request.Creator, + uint32(request.GameID), + uint32(model.SubmissionStatusChangesRequested), + uint32(roles), + ) if err != nil { return nil, err } @@ -649,18 +635,11 @@ func (svc *Service) ActionSubmissionTriggerSubmitUnchecked(ctx context.Context, return err } - validate_request := model.CheckSubmissionRequest{ - SubmissionID: submission.ID, - ModelID: submission.AssetID, - SkipChecks: true, - } - - j, err := json.Marshal(validate_request) - if err != nil { - return err - } - - _, err = svc.Nats.Publish("maptest.submissions.check", []byte(j)) + err = svc.inner.NatsCheckSubmission( + submission.ID, + submission.AssetID, + true, + ) if err != nil { return err } @@ -773,20 +752,13 @@ func (svc *Service) ActionSubmissionTriggerUpload(ctx context.Context, params ap // sentinel value because we are not using rust if submission.UploadedAssetID == 0 { // this is a new map - upload_new_request := model.UploadSubmissionRequest{ - SubmissionID: submission.ID, - ModelID: submission.ValidatedAssetID, - ModelVersion: submission.ValidatedAssetVersion, - // upload as displayname, whatever - ModelName: submission.DisplayName, - } - - j, err := json.Marshal(upload_new_request) - if err != nil { - return err - } - - _, err = svc.Nats.Publish("maptest.submissions.upload", []byte(j)) + err = svc.inner.NatsUploadSubmission( + submission.ID, + submission.ValidatedAssetID, + submission.ValidatedAssetVersion, + // upload ModelName as displayname, whatever + submission.DisplayName, + ) if err != nil { return err } @@ -915,24 +887,12 @@ func (svc *Service) ActionSubmissionTriggerValidate(ctx context.Context, params return err } - validate_request := model.ValidateSubmissionRequest{ - SubmissionID: submission.ID, - ModelID: submission.AssetID, - ModelVersion: submission.AssetVersion, - ValidatedModelID: nil, - } - - // sentinel values because we're not using rust - if submission.ValidatedAssetID != 0 { - validate_request.ValidatedModelID = &submission.ValidatedAssetID - } - - j, err := json.Marshal(validate_request) - if err != nil { - return err - } - - _, err = svc.Nats.Publish("maptest.submissions.validate", []byte(j)) + err = svc.inner.NatsValidateSubmission( + submission.ID, + submission.AssetID, + submission.AssetVersion, + submission.ValidatedAssetID, + ) if err != nil { return err } @@ -986,24 +946,12 @@ func (svc *Service) ActionSubmissionRetryValidate(ctx context.Context, params ap return err } - validate_request := model.ValidateSubmissionRequest{ - SubmissionID: submission.ID, - ModelID: submission.AssetID, - ModelVersion: submission.AssetVersion, - ValidatedModelID: nil, - } - - // sentinel values because we're not using rust - if submission.ValidatedAssetID != 0 { - validate_request.ValidatedModelID = &submission.ValidatedAssetID - } - - j, err := json.Marshal(validate_request) - if err != nil { - return err - } - - _, err = svc.Nats.Publish("maptest.submissions.validate", []byte(j)) + err = svc.inner.NatsValidateSubmission( + submission.ID, + submission.AssetID, + submission.AssetVersion, + submission.ValidatedAssetID, + ) if err != nil { return err } diff --git a/pkg/service_inner/nats_submission.go b/pkg/service_inner/nats_submission.go new file mode 100644 index 0000000..f00c700 --- /dev/null +++ b/pkg/service_inner/nats_submission.go @@ -0,0 +1,120 @@ +package service_inner + +import ( + "encoding/json" + + "git.itzana.me/strafesnet/maps-service/pkg/model" +) + +func (svc *Service) NatsCreateSubmission( + OperationID int32, + ModelID uint64, + DisplayName string, + Creator string, + GameID uint32, + Status uint32, + Roles uint32, +) error { + create_request := model.CreateSubmissionRequest{ + OperationID: OperationID, + ModelID: ModelID, + DisplayName: DisplayName, + Creator: Creator, + GameID: GameID, + Status: Status, + Roles: Roles, + } + + j, err := json.Marshal(create_request) + if err != nil { + return err + } + + _, err = svc.nats.Publish("maptest.submissions.create", []byte(j)) + if err != nil { + return err + } + + return nil +} + +func (svc *Service) NatsCheckSubmission( + SubmissionID int64, + ModelID uint64, + SkipChecks bool, +) error { + validate_request := model.CheckSubmissionRequest{ + SubmissionID: SubmissionID, + ModelID: ModelID, + SkipChecks: SkipChecks, + } + + j, err := json.Marshal(validate_request) + if err != nil { + return err + } + + _, err = svc.nats.Publish("maptest.submissions.check", []byte(j)) + if err != nil { + return err + } + + return nil +} + +func (svc *Service) NatsUploadSubmission( + SubmissionID int64, + ModelID uint64, + ModelVersion uint64, + ModelName string, +) error { + upload_new_request := model.UploadSubmissionRequest{ + SubmissionID: SubmissionID, + ModelID: ModelID, + ModelVersion: ModelVersion, + ModelName: ModelName, + } + + j, err := json.Marshal(upload_new_request) + if err != nil { + return err + } + + _, err = svc.nats.Publish("maptest.submissions.upload", []byte(j)) + if err != nil { + return err + } + + return nil +} + +func (svc *Service) NatsValidateSubmission( + SubmissionID int64, + ModelID uint64, + ModelVersion uint64, + ValidatedModelID uint64, +) error { + validate_request := model.ValidateSubmissionRequest{ + SubmissionID: SubmissionID, + ModelID: ModelID, + ModelVersion: ModelVersion, + ValidatedModelID: nil, + } + + // sentinel values because we're not using rust + if ValidatedModelID != 0 { + validate_request.ValidatedModelID = &ValidatedModelID + } + + j, err := json.Marshal(validate_request) + if err != nil { + return err + } + + _, err = svc.nats.Publish("maptest.submissions.validate", []byte(j)) + if err != nil { + return err + } + + return nil +}