From 56681f88622b7c57314883b3413614b653f544b5 Mon Sep 17 00:00:00 2001
From: Quaternions <krakow20@gmail.com>
Date: Thu, 3 Apr 2025 13:31:32 -0700
Subject: [PATCH] submissions: mark operation as completed

---
 pkg/service_internal/mapfixes.go    | 11 +++++++++++
 pkg/service_internal/submissions.go | 11 +++++++++++
 2 files changed, 22 insertions(+)

diff --git a/pkg/service_internal/mapfixes.go b/pkg/service_internal/mapfixes.go
index b792f72..e0f7375 100644
--- a/pkg/service_internal/mapfixes.go
+++ b/pkg/service_internal/mapfixes.go
@@ -3,6 +3,7 @@ package service_internal
 import (
 	"context"
 	"errors"
+	"fmt"
 
 	"git.itzana.me/strafesnet/maps-service/pkg/datastore"
 	internal "git.itzana.me/strafesnet/maps-service/pkg/internal"
@@ -125,6 +126,16 @@ func (svc *Service) CreateMapfix(ctx context.Context, request *internal.MapfixCr
 	if err != nil {
 		return nil, err
 	}
+
+	// mark the operation as completed and provide the path
+	pmap := datastore.Optional()
+	pmap.Add("status_id", model.OperationStatusCompleted)
+	pmap.Add("path", fmt.Sprintf("/mapfixes/%d", mapfix.ID))
+	err = svc.DB.Operations().Update(ctx, request.OperationID, pmap)
+	if err != nil {
+		return nil, err
+	}
+
 	return &internal.MapfixID{
 		MapfixID: mapfix.ID,
 	}, nil
diff --git a/pkg/service_internal/submissions.go b/pkg/service_internal/submissions.go
index 3322230..b445c64 100644
--- a/pkg/service_internal/submissions.go
+++ b/pkg/service_internal/submissions.go
@@ -3,6 +3,7 @@ package service_internal
 import (
 	"context"
 	"errors"
+	"fmt"
 
 	"git.itzana.me/strafesnet/maps-service/pkg/datastore"
 	internal "git.itzana.me/strafesnet/maps-service/pkg/internal"
@@ -124,6 +125,16 @@ func (svc *Service) CreateSubmission(ctx context.Context, request *internal.Subm
 	if err != nil {
 		return nil, err
 	}
+
+	// mark the operation as completed and provide the path
+	pmap := datastore.Optional()
+	pmap.Add("status_id", model.OperationStatusCompleted)
+	pmap.Add("path", fmt.Sprintf("/submissions/%d", submission.ID))
+	err = svc.DB.Operations().Update(ctx, request.OperationID, pmap)
+	if err != nil {
+		return nil, err
+	}
+
 	return &internal.SubmissionID{
 		SubmissionID: submission.ID,
 	}, nil