Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions generator/templates/model_create.gotpl
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ func (q *Queries) execute{{ .Model.Name }}Create(ctx context.Context, assignment
}

if q.{{ .Model.Name }}.afterCreate != nil {
if err := q.{{ .Model.Name }}.afterCreate(ctx, res); err != nil {
if err := q.{{ .Model.Name }}.afterCreate(ctx, []*{{ .Model.Name }}{res}); err != nil {
return nil, err
}
}
Expand Down Expand Up @@ -394,10 +394,8 @@ func (q *Queries) execute{{ .Model.Name }}CreateManyAndReturn(ctx context.Contex
return nil, err
}
if q.{{ .Model.Name }}.afterCreate != nil {
for _, r := range results {
if err := q.{{ .Model.Name }}.afterCreate(ctx, r); err != nil {
return nil, err
}
if err := q.{{ .Model.Name }}.afterCreate(ctx, results); err != nil {
return nil, err
}
}
return results, nil
Expand Down
4 changes: 2 additions & 2 deletions generator/templates/model_structs.gotpl
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,15 @@ type {{ .Model.Name }}Omit struct {
type {{ .Model.Name }}Delegate struct {
client *Queries
beforeCreate func(context.Context, *{{ .Model.Name }}Create) error
afterCreate func(context.Context, *{{ .Model.Name }}) error
afterCreate func(context.Context, []*{{ .Model.Name }}) error
afterCreateMany func(context.Context, []{{ .Model.Name }}Create, int64) error
}

func (d *{{ .Model.Name }}Delegate) BeforeCreate(hook func(context.Context, *{{ .Model.Name }}Create) error) {
d.beforeCreate = hook
}

func (d *{{ .Model.Name }}Delegate) AfterCreate(hook func(context.Context, *{{ .Model.Name }}) error) {
func (d *{{ .Model.Name }}Delegate) AfterCreate(hook func(context.Context, []*{{ .Model.Name }}) error) {
d.afterCreate = hook
}

Expand Down
8 changes: 5 additions & 3 deletions integration/create_many_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,9 +109,11 @@ func TestCreateMany_Hooks(t *testing.T) {

var afterCalled bool
var gotRole valk.UserRoleType
client.User.AfterCreate(func(ctx context.Context, user *valk.User) error {
client.User.AfterCreate(func(ctx context.Context, users []*valk.User) error {
afterCalled = true
gotRole = user.Role
if len(users) > 0 {
gotRole = users[0].Role
}
return nil
})

Expand All @@ -137,7 +139,7 @@ func TestCreateMany_Hooks(t *testing.T) {
client, cleanup := setupTestDB(t)
defer cleanup()

client.User.AfterCreate(func(ctx context.Context, user *valk.User) error {
client.User.AfterCreate(func(ctx context.Context, users []*valk.User) error {
return fmt.Errorf("after hook rejected")
})

Expand Down
11 changes: 6 additions & 5 deletions integration/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,18 @@ func seed(db *valk.DB, ctx context.Context) *SeedData {
return nil
})

db.User.AfterCreateMany(func(ctx context.Context, users []valk.UserCreate, count int64) error {
db.User.AfterCreateMany(func(ctx context.Context, usersInput []valk.UserCreate, count int64) error {
var emails []string
for _, u := range users {
for _, u := range usersInput {
emails = append(emails, u.Email)
}
fmt.Printf("AfterCreateMany: %d users created (emails: %v)\n", count, emails)
return nil
})

db.User.AfterCreate(func(ctx context.Context, user *valk.User) error {
fmt.Printf("AfterCreate: user %s (role=%s)\n", user.Email, user.Role)
db.User.AfterCreate(func(ctx context.Context, users []*valk.User) error {
for _, u := range users {
fmt.Printf("AfterCreate: user %s (role=%s)\n", u.Email, u.Role)
}
return nil
})

Expand Down
8 changes: 5 additions & 3 deletions integration/validation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -459,9 +459,11 @@ func TestCreate_Hooks(t *testing.T) {
})

var afterCalled bool
db.User.AfterCreate(func(ctx context.Context, u *valk.User) error {
if u.Email == "hook@example.com" {
afterCalled = true
db.User.AfterCreate(func(ctx context.Context, users []*valk.User) error {
for _, u := range users {
if u.Email == "hook@example.com" {
afterCalled = true
}
}
return nil
})
Expand Down
12 changes: 5 additions & 7 deletions integration/valk/category.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,15 @@ type CategoryOmit struct {
type CategoryDelegate struct {
client *Queries
beforeCreate func(context.Context, *CategoryCreate) error
afterCreate func(context.Context, *Category) error
afterCreate func(context.Context, []*Category) error
afterCreateMany func(context.Context, []CategoryCreate, int64) error
}

func (d *CategoryDelegate) BeforeCreate(hook func(context.Context, *CategoryCreate) error) {
d.beforeCreate = hook
}

func (d *CategoryDelegate) AfterCreate(hook func(context.Context, *Category) error) {
func (d *CategoryDelegate) AfterCreate(hook func(context.Context, []*Category) error) {
d.afterCreate = hook
}

Expand Down Expand Up @@ -224,7 +224,7 @@ func (q *Queries) executeCategoryCreate(ctx context.Context, assignments []Field
}

if q.Category.afterCreate != nil {
if err := q.Category.afterCreate(ctx, res); err != nil {
if err := q.Category.afterCreate(ctx, []*Category{res}); err != nil {
return nil, err
}
}
Expand Down Expand Up @@ -302,10 +302,8 @@ func (q *Queries) executeCategoryCreateManyAndReturn(ctx context.Context, record
return nil, err
}
if q.Category.afterCreate != nil {
for _, r := range results {
if err := q.Category.afterCreate(ctx, r); err != nil {
return nil, err
}
if err := q.Category.afterCreate(ctx, results); err != nil {
return nil, err
}
}
return results, nil
Expand Down
12 changes: 5 additions & 7 deletions integration/valk/categoryToPost.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,15 +41,15 @@ type CategoryToPostOmit struct {
type CategoryToPostDelegate struct {
client *Queries
beforeCreate func(context.Context, *CategoryToPostCreate) error
afterCreate func(context.Context, *CategoryToPost) error
afterCreate func(context.Context, []*CategoryToPost) error
afterCreateMany func(context.Context, []CategoryToPostCreate, int64) error
}

func (d *CategoryToPostDelegate) BeforeCreate(hook func(context.Context, *CategoryToPostCreate) error) {
d.beforeCreate = hook
}

func (d *CategoryToPostDelegate) AfterCreate(hook func(context.Context, *CategoryToPost) error) {
func (d *CategoryToPostDelegate) AfterCreate(hook func(context.Context, []*CategoryToPost) error) {
d.afterCreate = hook
}

Expand Down Expand Up @@ -223,7 +223,7 @@ func (q *Queries) executeCategoryToPostCreate(ctx context.Context, assignments [
}

if q.CategoryToPost.afterCreate != nil {
if err := q.CategoryToPost.afterCreate(ctx, res); err != nil {
if err := q.CategoryToPost.afterCreate(ctx, []*CategoryToPost{res}); err != nil {
return nil, err
}
}
Expand Down Expand Up @@ -301,10 +301,8 @@ func (q *Queries) executeCategoryToPostCreateManyAndReturn(ctx context.Context,
return nil, err
}
if q.CategoryToPost.afterCreate != nil {
for _, r := range results {
if err := q.CategoryToPost.afterCreate(ctx, r); err != nil {
return nil, err
}
if err := q.CategoryToPost.afterCreate(ctx, results); err != nil {
return nil, err
}
}
return results, nil
Expand Down
12 changes: 5 additions & 7 deletions integration/valk/comment.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,15 @@ type CommentOmit struct {
type CommentDelegate struct {
client *Queries
beforeCreate func(context.Context, *CommentCreate) error
afterCreate func(context.Context, *Comment) error
afterCreate func(context.Context, []*Comment) error
afterCreateMany func(context.Context, []CommentCreate, int64) error
}

func (d *CommentDelegate) BeforeCreate(hook func(context.Context, *CommentCreate) error) {
d.beforeCreate = hook
}

func (d *CommentDelegate) AfterCreate(hook func(context.Context, *Comment) error) {
func (d *CommentDelegate) AfterCreate(hook func(context.Context, []*Comment) error) {
d.afterCreate = hook
}

Expand Down Expand Up @@ -389,7 +389,7 @@ func (q *Queries) executeCommentCreate(ctx context.Context, assignments []FieldA
}

if q.Comment.afterCreate != nil {
if err := q.Comment.afterCreate(ctx, res); err != nil {
if err := q.Comment.afterCreate(ctx, []*Comment{res}); err != nil {
return nil, err
}
}
Expand Down Expand Up @@ -467,10 +467,8 @@ func (q *Queries) executeCommentCreateManyAndReturn(ctx context.Context, records
return nil, err
}
if q.Comment.afterCreate != nil {
for _, r := range results {
if err := q.Comment.afterCreate(ctx, r); err != nil {
return nil, err
}
if err := q.Comment.afterCreate(ctx, results); err != nil {
return nil, err
}
}
return results, nil
Expand Down
12 changes: 5 additions & 7 deletions integration/valk/post.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,15 +56,15 @@ type PostOmit struct {
type PostDelegate struct {
client *Queries
beforeCreate func(context.Context, *PostCreate) error
afterCreate func(context.Context, *Post) error
afterCreate func(context.Context, []*Post) error
afterCreateMany func(context.Context, []PostCreate, int64) error
}

func (d *PostDelegate) BeforeCreate(hook func(context.Context, *PostCreate) error) {
d.beforeCreate = hook
}

func (d *PostDelegate) AfterCreate(hook func(context.Context, *Post) error) {
func (d *PostDelegate) AfterCreate(hook func(context.Context, []*Post) error) {
d.afterCreate = hook
}

Expand Down Expand Up @@ -316,7 +316,7 @@ func (q *Queries) executePostCreate(ctx context.Context, assignments []FieldAssi
}

if q.Post.afterCreate != nil {
if err := q.Post.afterCreate(ctx, res); err != nil {
if err := q.Post.afterCreate(ctx, []*Post{res}); err != nil {
return nil, err
}
}
Expand Down Expand Up @@ -394,10 +394,8 @@ func (q *Queries) executePostCreateManyAndReturn(ctx context.Context, records []
return nil, err
}
if q.Post.afterCreate != nil {
for _, r := range results {
if err := q.Post.afterCreate(ctx, r); err != nil {
return nil, err
}
if err := q.Post.afterCreate(ctx, results); err != nil {
return nil, err
}
}
return results, nil
Expand Down
12 changes: 5 additions & 7 deletions integration/valk/profile.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,15 @@ type ProfileOmit struct {
type ProfileDelegate struct {
client *Queries
beforeCreate func(context.Context, *ProfileCreate) error
afterCreate func(context.Context, *Profile) error
afterCreate func(context.Context, []*Profile) error
afterCreateMany func(context.Context, []ProfileCreate, int64) error
}

func (d *ProfileDelegate) BeforeCreate(hook func(context.Context, *ProfileCreate) error) {
d.beforeCreate = hook
}

func (d *ProfileDelegate) AfterCreate(hook func(context.Context, *Profile) error) {
func (d *ProfileDelegate) AfterCreate(hook func(context.Context, []*Profile) error) {
d.afterCreate = hook
}

Expand Down Expand Up @@ -258,7 +258,7 @@ func (q *Queries) executeProfileCreate(ctx context.Context, assignments []FieldA
}

if q.Profile.afterCreate != nil {
if err := q.Profile.afterCreate(ctx, res); err != nil {
if err := q.Profile.afterCreate(ctx, []*Profile{res}); err != nil {
return nil, err
}
}
Expand Down Expand Up @@ -336,10 +336,8 @@ func (q *Queries) executeProfileCreateManyAndReturn(ctx context.Context, records
return nil, err
}
if q.Profile.afterCreate != nil {
for _, r := range results {
if err := q.Profile.afterCreate(ctx, r); err != nil {
return nil, err
}
if err := q.Profile.afterCreate(ctx, results); err != nil {
return nil, err
}
}
return results, nil
Expand Down
12 changes: 5 additions & 7 deletions integration/valk/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,15 +70,15 @@ type UserOmit struct {
type UserDelegate struct {
client *Queries
beforeCreate func(context.Context, *UserCreate) error
afterCreate func(context.Context, *User) error
afterCreate func(context.Context, []*User) error
afterCreateMany func(context.Context, []UserCreate, int64) error
}

func (d *UserDelegate) BeforeCreate(hook func(context.Context, *UserCreate) error) {
d.beforeCreate = hook
}

func (d *UserDelegate) AfterCreate(hook func(context.Context, *User) error) {
func (d *UserDelegate) AfterCreate(hook func(context.Context, []*User) error) {
d.afterCreate = hook
}

Expand Down Expand Up @@ -370,7 +370,7 @@ func (q *Queries) executeUserCreate(ctx context.Context, assignments []FieldAssi
}

if q.User.afterCreate != nil {
if err := q.User.afterCreate(ctx, res); err != nil {
if err := q.User.afterCreate(ctx, []*User{res}); err != nil {
return nil, err
}
}
Expand Down Expand Up @@ -448,10 +448,8 @@ func (q *Queries) executeUserCreateManyAndReturn(ctx context.Context, records []
return nil, err
}
if q.User.afterCreate != nil {
for _, r := range results {
if err := q.User.afterCreate(ctx, r); err != nil {
return nil, err
}
if err := q.User.afterCreate(ctx, results); err != nil {
return nil, err
}
}
return results, nil
Expand Down
Loading