Files
sendico/api/ledger/internal/service/ledger/transaction_support.go
2026-01-30 15:54:45 +01:00

21 lines
535 B
Go

package ledger
import (
"context"
"github.com/tech/sendico/pkg/db/transaction"
"github.com/tech/sendico/pkg/merrors"
)
type transactionProvider interface {
TransactionFactory() transaction.Factory
}
func (s *Service) executeTransaction(ctx context.Context, cb transaction.Callback) (any, error) {
provider, ok := s.storage.(transactionProvider)
if !ok || provider == nil {
return nil, merrors.Internal("storage does not support transactions")
}
return provider.TransactionFactory().CreateTransaction().Execute(ctx, cb)
}