owpengram-server/internal/store/postgres/delivery_effect.go
2026-09-09 02:49:30 +03:00

28 lines
783 B
Go

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
}