Bootstrap copied BFF and local accounts with public Sendico contracts (#34)
This commit is contained in:
1 parent
67dc5b5b1e
commit
7062672a87
556 files changed
+42291
-777
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)
|
||||
}
|
||||
Reference in new issue
Block a user