Organize backend into product executable and shared Go modules

This commit is contained in:
Stephan D committed 2026-09-12 14:14:08 +02:00
1 parent 981e84a4b4
commit f0720ec66b
382 files changed
+1944 -6989

No files matched your search

@@ -0,0 +1,12 @@
package transaction
import (
"context"
"go.mongodb.org/mongo-driver/v2/mongo"
)
func ActiveMongoTransaction(ctx context.Context) bool {
session := mongo.SessionFromContext(ctx)
return session != nil && session.TransactionRunning()
}
@@ -0,0 +1,21 @@
package transaction
import (
"context"
"testing"
"go.mongodb.org/mongo-driver/v2/mongo"
)
func TestActiveMongoTransactionRejectsContextWithoutSession(t *testing.T) {
if ActiveMongoTransaction(context.Background()) {
t.Fatal("context without mongo session must not be active")
}
}
func TestActiveMongoTransactionRejectsSessionWithoutTransaction(t *testing.T) {
ctx := mongo.NewSessionContext(context.Background(), &mongo.Session{})
if ActiveMongoTransaction(ctx) {
t.Fatal("session without transaction must not be active")
}
}
@@ -0,0 +1,5 @@
package transaction
type Factory interface {
CreateTransaction() Transaction
}
@@ -0,0 +1,11 @@
package transaction
import (
"context"
)
type Callback = func(ctx context.Context) (any, error)
type Transaction interface {
Execute(ctx context.Context, cb Callback) (any, error)
}