Files
2026-01-08 01:15:07 +00:00

35 lines
666 B
Go

package db
import (
"context"
"github.com/rs/zerolog/log"
)
type CreateUserTxParams struct {
CreateUserParams
AfterCreate func(user User) error
}
type CreateUserTxResult struct {
User User `json:"user"`
}
func (store *PostgresStore) CreateUserTx(ctx context.Context, arg CreateUserTxParams) (CreateUserTxResult, error) {
var result CreateUserTxResult
err := store.execTx(ctx, func(q *Queries) error {
var err error
result.User, err = q.CreateUser(ctx, arg.CreateUserParams)
if err != nil {
return err
}
log.Info().Msgf("user %s created successfully", result.User.Username)
return arg.AfterCreate(result.User)
})
return result, err
}