fix(11-08): make cabana writes commit-safe

This commit is contained in:
Jakub Zych
2026-09-30 20:14:23 +02:00
parent 9033d81721
commit f7b6b0c313
2 changed files with 6 additions and 8 deletions

View File

@@ -151,8 +151,7 @@ func (s CRUDService) Delete(ctx context.Context, cc *CompiledController, id any)
return BulkResult{}, err
}
var result BulkResult
err := s.DB.WithContext(ctx).Transaction(func(tx *gorm.DB) error {
tx = tx.WithContext(ctx)
err := lagoon.Transaction(ctx, s.DB, func(ctx context.Context, tx *gorm.DB) error {
target, err := newWritableModel(cc)
if err != nil {
return err
@@ -199,8 +198,7 @@ func (s CRUDService) BulkDelete(ctx context.Context, cc *CompiledController, in
return BulkResult{}, err
}
var result BulkResult
err = s.DB.WithContext(ctx).Transaction(func(tx *gorm.DB) error {
tx = tx.WithContext(ctx)
err = lagoon.Transaction(ctx, s.DB, func(ctx context.Context, tx *gorm.DB) error {
if err := ctx.Err(); err != nil {
return lifecycleFailure(cc, err)
}
@@ -308,8 +306,7 @@ func (s CRUDService) save(ctx context.Context, cc *CompiledController, id any, i
return RecordResult{}, err
}
var result RecordResult
err = s.DB.WithContext(ctx).Transaction(func(tx *gorm.DB) error {
tx = tx.WithContext(ctx)
err = lagoon.Transaction(ctx, s.DB, func(ctx context.Context, tx *gorm.DB) error {
target, err := newWritableModel(cc)
if err != nil {
return err

View File

@@ -10,6 +10,7 @@ import (
"sort"
"strings"
"git.golem15.com/golem15/summercms/modules/lagoon"
"git.golem15.com/golem15/summercms/modules/pact"
"git.golem15.com/golem15/summercms/modules/phrasebook"
"github.com/goccy/go-yaml"
@@ -645,7 +646,7 @@ func (s RelationService) Link(ctx context.Context, cc *CompiledController, relat
return RelationMutationResult{}, err
}
var result RelationMutationResult
err = s.DB.WithContext(ctx).Transaction(func(tx *gorm.DB) error {
err = lagoon.Transaction(ctx, s.DB, func(ctx context.Context, tx *gorm.DB) error {
parent, err := newWritableModel(cc)
if err != nil {
return err
@@ -714,7 +715,7 @@ func (s RelationService) Unlink(ctx context.Context, cc *CompiledController, rel
return RelationMutationResult{}, err
}
var result RelationMutationResult
err = s.DB.WithContext(ctx).Transaction(func(tx *gorm.DB) error {
err = lagoon.Transaction(ctx, s.DB, func(ctx context.Context, tx *gorm.DB) error {
parent, err := newWritableModel(cc)
if err != nil {
return err