Skip to content

Commit

Permalink
entc/gen: propagate nodes post-save mutations (#2525)
Browse files Browse the repository at this point in the history
* Failing test

* Fix propagating entirely models from OpCreate hook

* Apply suggestions from code review

Co-authored-by: Ariel Mashraki <7413593+a8m@users.noreply.github.com>

* whitespace

* Failing test for updateone

* fix for updateone

* Regnerate

* regen from root

Co-authored-by: Ariel Mashraki <7413593+a8m@users.noreply.github.com>
  • Loading branch information
Justin Johnson and a8m committed May 5, 2022
1 parent 240a43e commit 38d4d5f
Show file tree
Hide file tree
Showing 215 changed files with 1,557 additions and 214 deletions.
8 changes: 7 additions & 1 deletion entc/gen/template/builder/create.tmpl
Expand Up @@ -83,9 +83,15 @@ func ({{ $receiver }} *{{ $builder }}) Save(ctx context.Context) (*{{ $.Name }},
}
mut = {{ $receiver }}.hooks[i](mut)
}
if _, err := mut.Mutate(ctx, {{ $mutation }}); err != nil {
v, err := mut.Mutate(ctx, {{ $mutation }})
if err != nil {
return nil, err
}
nv, ok := v.(*{{ $.Name }})
if !ok {
return nil, fmt.Errorf("unexpected node type %T returned from {{ $.MutationName }}", v)
}
node = nv
}
return node, err
}
Expand Down
8 changes: 7 additions & 1 deletion entc/gen/template/builder/update.tmpl
Expand Up @@ -197,9 +197,15 @@ func ({{ $receiver }} *{{ $onebuilder }} ) Save(ctx context.Context) (*{{ $.Name
}
mut = {{ $receiver }}.hooks[i](mut)
}
if _, err := mut.Mutate(ctx, {{ $mutation }}); err != nil {
v, err := mut.Mutate(ctx, {{ $mutation }})
if err != nil {
return nil, err
}
nv, ok := v.(*{{ $.Name }})
if !ok {
return nil, fmt.Errorf("unexpected node type %T returned from {{ $.MutationName }}", v)
}
node = nv
}
return node, err
}
Expand Down
8 changes: 7 additions & 1 deletion entc/integration/cascadelete/ent/comment_create.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion entc/integration/cascadelete/ent/comment_update.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion entc/integration/cascadelete/ent/post_create.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion entc/integration/cascadelete/ent/post_update.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion entc/integration/cascadelete/ent/user_create.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion entc/integration/cascadelete/ent/user_update.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion entc/integration/config/ent/user_create.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion entc/integration/config/ent/user_update.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion entc/integration/customid/ent/account_create.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion entc/integration/customid/ent/account_update.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion entc/integration/customid/ent/blob_create.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion entc/integration/customid/ent/blob_update.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion entc/integration/customid/ent/car_create.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion entc/integration/customid/ent/car_update.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion entc/integration/customid/ent/device_create.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion entc/integration/customid/ent/device_update.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion entc/integration/customid/ent/doc_create.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion entc/integration/customid/ent/doc_update.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion entc/integration/customid/ent/group_create.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion entc/integration/customid/ent/group_update.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion entc/integration/customid/ent/mixinid_create.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 38d4d5f

Please sign in to comment.