internal/store/postgres/delivery_effect.go
Rama main · réplica de lectura del repositorio original.
package postgres
import (
"context"
"fmt"
"github.com/jackc/pgx/v5"
"telesrv/internal/store"
"telesrv/internal/store/postgres/sqlcgen"
)
func applyDeliveryEffectsTx(ctx context.Context, tx pgx.Tx, effects []store.DeliveryEffect) ([]store.DeliveryEffect, error) {
qtx := sqlcgen.New(tx)
events := NewUpdateEventStore(tx)
for i := range effects {
effect := &effects[i]
if err := effect.Validate(); err != nil {
return nil, fmt.Errorf("delivery effect %d: %w", i, err)
}
event, err := events.appendInTx(ctx, tx, qtx, effect.TargetUserID, effect.Event, true, effect.ExcludeAuthKeyID, effect.ExcludeSessionID, true)
if err != nil {
return nil, fmt.Errorf("apply account PTS delivery effect %d: %w", i, err)
}
effect.Event = event
}
return effects, nil
}