From 3f818f489accaa02ee3dee78e29681a6280174b1 Mon Sep 17 00:00:00 2001 From: rhit-zhangl8 <112708732+rhit-zhangl8@users.noreply.github.com> Date: Mon, 27 Oct 2025 00:58:57 -0400 Subject: [PATCH] fixed bug added a check for duplicated versions when updating a mod --- workflows/versionupload/create_version_in_database.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/workflows/versionupload/create_version_in_database.go b/workflows/versionupload/create_version_in_database.go index 92bc67d..5ef5897 100644 --- a/workflows/versionupload/create_version_in_database.go +++ b/workflows/versionupload/create_version_in_database.go @@ -6,11 +6,13 @@ import ( "github.com/Vilsol/slox" "go.temporal.io/sdk/temporal" + "fmt" "github.com/satisfactorymodding/smr-api/db" "github.com/satisfactorymodding/smr-api/generated" "github.com/satisfactorymodding/smr-api/generated/ent" mod2 "github.com/satisfactorymodding/smr-api/generated/ent/mod" + "github.com/satisfactorymodding/smr-api/generated/ent/version" "github.com/satisfactorymodding/smr-api/util" "github.com/satisfactorymodding/smr-api/validation" ) @@ -34,6 +36,15 @@ func (*A) CreateVersionInDatabaseActivity(ctx context.Context, args CreateVersio var dbVersion *ent.Version if err := db.Tx(ctx, func(ctx context.Context, tx *ent.Tx) error { + + exists, err := tx.Version.Query().Where(version.Version(args.ModInfo.Version), Version.ModID(args.ModID)).Exist(ctx) + if err != nil { + return err + } + if exists { + return fmt.Errorf("version %s already exists for mod %s", args.ModInfo.Version, args.ModID) + } + dbVersion, err = tx.Version.Create(). SetVersion(args.ModInfo.Version). SetGameVersion(args.ModInfo.GameVersion).