mediahls/internal/db/tx_create_video.go
2023-12-22 16:51:09 +08:00

30 lines
553 B
Go

package db
import "context"
type CreateVideoTxParam struct {
CreateVideoParams
AfterCreate func(video Video) error
}
type CreateVideoTxResult struct {
Video Video
}
func (store *SQLStore) CreateVideoTx(ctx context.Context, arg CreateVideoTxParam) (CreateVideoTxResult, error) {
var result CreateVideoTxResult
err := store.ExecTx(ctx, func(q *Queries) error {
var err error
result.Video, err = q.CreateVideo(ctx, arg.CreateVideoParams)
if err != nil {
return err
}
return arg.AfterCreate(result.Video)
})
return result, err
}