fix(11-08): make cabana writes commit-safe
This commit is contained in:
@@ -151,8 +151,7 @@ func (s CRUDService) Delete(ctx context.Context, cc *CompiledController, id any)
|
|||||||
return BulkResult{}, err
|
return BulkResult{}, err
|
||||||
}
|
}
|
||||||
var result BulkResult
|
var result BulkResult
|
||||||
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 {
|
||||||
tx = tx.WithContext(ctx)
|
|
||||||
target, err := newWritableModel(cc)
|
target, err := newWritableModel(cc)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -199,8 +198,7 @@ func (s CRUDService) BulkDelete(ctx context.Context, cc *CompiledController, in
|
|||||||
return BulkResult{}, err
|
return BulkResult{}, err
|
||||||
}
|
}
|
||||||
var result BulkResult
|
var result BulkResult
|
||||||
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 {
|
||||||
tx = tx.WithContext(ctx)
|
|
||||||
if err := ctx.Err(); err != nil {
|
if err := ctx.Err(); err != nil {
|
||||||
return lifecycleFailure(cc, err)
|
return lifecycleFailure(cc, err)
|
||||||
}
|
}
|
||||||
@@ -308,8 +306,7 @@ func (s CRUDService) save(ctx context.Context, cc *CompiledController, id any, i
|
|||||||
return RecordResult{}, err
|
return RecordResult{}, err
|
||||||
}
|
}
|
||||||
var result RecordResult
|
var result RecordResult
|
||||||
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 {
|
||||||
tx = tx.WithContext(ctx)
|
|
||||||
target, err := newWritableModel(cc)
|
target, err := newWritableModel(cc)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import (
|
|||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"git.golem15.com/golem15/summercms/modules/lagoon"
|
||||||
"git.golem15.com/golem15/summercms/modules/pact"
|
"git.golem15.com/golem15/summercms/modules/pact"
|
||||||
"git.golem15.com/golem15/summercms/modules/phrasebook"
|
"git.golem15.com/golem15/summercms/modules/phrasebook"
|
||||||
"github.com/goccy/go-yaml"
|
"github.com/goccy/go-yaml"
|
||||||
@@ -645,7 +646,7 @@ func (s RelationService) Link(ctx context.Context, cc *CompiledController, relat
|
|||||||
return RelationMutationResult{}, err
|
return RelationMutationResult{}, err
|
||||||
}
|
}
|
||||||
var result RelationMutationResult
|
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)
|
parent, err := newWritableModel(cc)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -714,7 +715,7 @@ func (s RelationService) Unlink(ctx context.Context, cc *CompiledController, rel
|
|||||||
return RelationMutationResult{}, err
|
return RelationMutationResult{}, err
|
||||||
}
|
}
|
||||||
var result RelationMutationResult
|
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)
|
parent, err := newWritableModel(cc)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
Reference in New Issue
Block a user