mirror of
https://github.com/ent/ent.git
synced 2026-05-24 09:31:56 +03:00
entc/gen: move mutation hooks logic to a shared generic function (#3180)
This commit is contained in:
@@ -12,6 +12,9 @@ in the LICENSE file in the root directory of this source tree.
|
||||
{{ $mutation := print $receiver ".mutation" }}
|
||||
|
||||
func ({{ $receiver }} *{{ $builder }}) sqlSave(ctx context.Context) (*{{ $.Name }}, error) {
|
||||
if err := {{ $receiver }}.check(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
_node, _spec := {{ $receiver }}.createSpec()
|
||||
if err := sqlgraph.CreateNode(ctx, {{ $receiver }}.driver, _spec); err != nil {
|
||||
if sqlgraph.IsConstraintError(err) {
|
||||
@@ -49,6 +52,10 @@ func ({{ $receiver }} *{{ $builder }}) sqlSave(ctx context.Context) (*{{ $.Name
|
||||
}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if $.HasOneFieldID }}
|
||||
{{ $mutation }}.{{ $.ID.BuilderField }} = &_node.{{ $.ID.StructField }}
|
||||
{{ $mutation }}.done = true
|
||||
{{- end }}
|
||||
return _node, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@ func ({{ $receiver}} *{{ $builder }}) sqlExec(ctx context.Context) (int, error)
|
||||
if err != nil && sqlgraph.IsConstraintError(err) {
|
||||
err = &ConstraintError{msg: err.Error(), wrap: err}
|
||||
}
|
||||
{{ $mutation }}.done = true
|
||||
return affected, err
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,11 @@ in the LICENSE file in the root directory of this source tree.
|
||||
{{- end }}
|
||||
|
||||
func ({{ $receiver }} *{{ $builder }}) sqlSave(ctx context.Context) ({{ $ret }} {{ if $one }}*{{ $.Name }}{{ else }}int{{ end }}, err error) {
|
||||
{{- if $.HasUpdateCheckers }}
|
||||
if err := {{ $receiver }}.check(); err != nil {
|
||||
return {{ $ret }}, err
|
||||
}
|
||||
{{- end }}
|
||||
_spec := &sqlgraph.UpdateSpec{
|
||||
Node: &sqlgraph.NodeSpec{
|
||||
Table: {{ $.Package }}.Table,
|
||||
@@ -171,6 +176,7 @@ func ({{ $receiver }} *{{ $builder }}) sqlSave(ctx context.Context) ({{ $ret }}
|
||||
}
|
||||
return {{ $zero }}, err
|
||||
}
|
||||
{{ $mutation }}.done = true
|
||||
return {{ $ret }}, nil
|
||||
}
|
||||
{{ end }}
|
||||
|
||||
Reference in New Issue
Block a user