update project and selectors
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
package repository
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/zepyrshut/rating-orama/internal/scraper"
|
||||
"github.com/zepyrshut/rating-orama/internal/sqlc"
|
||||
)
|
||||
|
||||
func (r *pgxRepository) CreateTvShowWithEpisodesTX(ctx context.Context, tvShow sqlc.CreateTVShowParams, episodes []scraper.Episode) ([]sqlc.Episode, error) {
|
||||
var err error
|
||||
var episodesSqlc []sqlc.Episode
|
||||
|
||||
err = r.execTx(ctx, func(tx *sqlc.Queries) error {
|
||||
tvShow, err := tx.CreateTVShow(ctx, tvShow)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, episode := range episodes {
|
||||
sqlcEpisodeParams := episode.ToEpisodeParams(tvShow.ID)
|
||||
episode, err := tx.CreateEpisodes(ctx, sqlcEpisodeParams)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
episodesSqlc = append(episodesSqlc, episode)
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
|
||||
return episodesSqlc, err
|
||||
}
|
||||
Reference in New Issue
Block a user