mirror of
https://github.com/ent/ent.git
synced 2026-05-24 09:31:56 +03:00
entc/gen: add struct field name to fields and edges
Summary: avoig logic in templates Reviewed By: alexsn Differential Revision: D17926168 fbshipit-source-id: d583e800fb4a45cf939e9788cea6d45e126c61fe
This commit is contained in:
committed by
Facebook Github Bot
parent
64ed7580c0
commit
36a3971f3d
@@ -31,7 +31,7 @@ func ({{ $receiver }} *{{ $builder }}) sqlSave(ctx context.Context) (*{{ $.Name
|
||||
{{- else }}
|
||||
builder.Set({{ $.Package }}.{{ $f.Constant }}, *value)
|
||||
{{- end }}
|
||||
{{ $.Receiver }}.{{ pascal $f.Name }} = {{ if not $f.Nillable }}*{{ end }}value
|
||||
{{ $.Receiver }}.{{ $f.StructField }} = {{ if not $f.Nillable }}*{{ end }}value
|
||||
}
|
||||
{{- end }}
|
||||
query, args := builder.Query()
|
||||
|
||||
@@ -13,14 +13,14 @@ func ({{ $receiver }} *{{ $.Name }}) FromRows(rows *sql.Rows) error {
|
||||
var {{ $scan }} struct {
|
||||
ID {{ if $.ID.IsString }}int{{ else }}{{ $.ID.Type }}{{ end }}
|
||||
{{ range $_, $f := $.Fields }}
|
||||
{{- pascal $f.Name }} {{ $f.NullType }}
|
||||
{{- $f.StructField }} {{ $f.NullType }}
|
||||
{{ end }}
|
||||
}
|
||||
// the order here should be the same as in the `{{ $.Package }}.Columns`.
|
||||
if err := rows.Scan(
|
||||
&{{ $scan }}.ID,
|
||||
{{- range $_, $f := $.Fields }}
|
||||
&{{ $scan }}.{{- pascal $f.Name }},
|
||||
&{{ $scan }}.{{ $f.StructField }},
|
||||
{{- end }}
|
||||
); err != nil {
|
||||
return err
|
||||
@@ -28,18 +28,18 @@ func ({{ $receiver }} *{{ $.Name }}) FromRows(rows *sql.Rows) error {
|
||||
{{ $receiver }}.ID = {{ if $.ID.IsString }}strconv.Itoa({{ $scan }}.ID){{ else }}{{ $scan }}.ID{{ end }}
|
||||
{{- range $_, $f := $.Fields }}
|
||||
{{- if $f.IsJSON }}
|
||||
if value := {{ $scan }}.{{ pascal $f.Name }}; len(value) > 0 {
|
||||
if err := json.Unmarshal(value, &{{ $receiver }}.{{ pascal $f.Name }}); err != nil {
|
||||
if value := {{ $scan }}.{{ $f.StructField }}; len(value) > 0 {
|
||||
if err := json.Unmarshal(value, &{{ $receiver }}.{{ $f.StructField }}); err != nil {
|
||||
return fmt.Errorf("unmarshal field {{ $f.Name }}: %v", err)
|
||||
}
|
||||
}
|
||||
{{- else if $f.Nillable }}
|
||||
if {{ $scan }}.{{- pascal $f.Name }}.Valid {
|
||||
{{ $receiver }}.{{ pascal $f.Name }} = new({{ $f.Type }})
|
||||
*{{ $receiver }}.{{ pascal $f.Name }} = {{ printf "%s.%s" $scan (pascal $f.Name) | $f.NullTypeField }}
|
||||
if {{ $scan }}.{{ $f.StructField }}.Valid {
|
||||
{{ $receiver }}.{{ $f.StructField }} = new({{ $f.Type }})
|
||||
*{{ $receiver }}.{{ $f.StructField }} = {{ printf "%s.%s" $scan $f.StructField | $f.NullTypeField }}
|
||||
}
|
||||
{{- else }}
|
||||
{{ $receiver }}.{{ pascal $f.Name }} = {{ printf "%s.%s" $scan (pascal $f.Name) | $f.NullTypeField }}
|
||||
{{ $receiver }}.{{ $f.StructField }} = {{ printf "%s.%s" $scan $f.StructField | $f.NullTypeField }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
return nil
|
||||
|
||||
@@ -78,7 +78,7 @@ func ({{ $receiver }} *{{ $builder }}) sqlSave(ctx context.Context) ({{ $ret }}
|
||||
builder.Set({{ $.Package }}.{{ $f.Constant }}, *value)
|
||||
{{- end }}
|
||||
{{- if $one }}
|
||||
{{ $.Receiver }}.{{ pascal $f.Name }} = {{ if not $f.Nillable }}*{{ end }}value
|
||||
{{ $.Receiver }}.{{ $f.StructField }} = {{ if not $f.Nillable }}*{{ end }}value
|
||||
{{- end }}
|
||||
}
|
||||
{{- if $f.Type.Numeric }}
|
||||
@@ -86,13 +86,13 @@ func ({{ $receiver }} *{{ $builder }}) sqlSave(ctx context.Context) ({{ $ret }}
|
||||
builder.Add({{ $.Package }}.{{ $f.Constant }}, *value)
|
||||
{{- if $one }}
|
||||
{{- if $f.Nillable }}
|
||||
if {{ $.Receiver }}.{{ pascal $f.Name }} != nil {
|
||||
*{{ $.Receiver }}.{{ pascal $f.Name }} += *value
|
||||
if {{ $.Receiver }}.{{ $f.StructField }} != nil {
|
||||
*{{ $.Receiver }}.{{ $f.StructField }} += *value
|
||||
} else {
|
||||
{{ $.Receiver }}.{{ pascal $f.Name }} = value
|
||||
{{ $.Receiver }}.{{ $f.StructField }} = value
|
||||
}
|
||||
{{- else }}
|
||||
{{ $.Receiver }}.{{ pascal $f.Name }} += *value
|
||||
{{ $.Receiver }}.{{ $f.StructField }} += *value
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
}
|
||||
@@ -102,10 +102,10 @@ func ({{ $receiver }} *{{ $builder }}) sqlSave(ctx context.Context) ({{ $ret }}
|
||||
if {{ $receiver }}.clear{{ $f.BuilderField }} {
|
||||
{{- if $one }}
|
||||
{{- if $f.Nillable }}
|
||||
{{ $.Receiver }}.{{ pascal $f.Name }} = nil
|
||||
{{ $.Receiver }}.{{ $f.StructField }} = nil
|
||||
{{- else }}
|
||||
var value {{ $f.Type }}
|
||||
{{ $.Receiver }}.{{ pascal $f.Name }} = value
|
||||
{{ $.Receiver }}.{{ $f.StructField }} = value
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
builder.SetNull({{ $.Package }}.{{ $f.Constant }})
|
||||
@@ -123,10 +123,10 @@ func ({{ $receiver }} *{{ $builder }}) sqlSave(ctx context.Context) ({{ $ret }}
|
||||
{{- end }}
|
||||
{{- range $_, $e := $.Edges }}
|
||||
{{- if $e.M2M }}
|
||||
if len({{ $receiver }}.removed{{ pascal $e.Name }}) > 0 {
|
||||
if len({{ $receiver }}.removed{{ $e.StructField }}) > 0 {
|
||||
{{- $a := 0 }}{{ $b := 1 }}{{ if $e.IsInverse }}{{ $a = 1 }}{{ $b = 0 }}{{ end }}
|
||||
eids := make([]int, len({{ $receiver }}.removed{{ pascal $e.Name }}))
|
||||
for eid := range {{ $receiver }}.removed{{ pascal $e.Name }} {
|
||||
eids := make([]int, len({{ $receiver }}.removed{{ $e.StructField }}))
|
||||
for eid := range {{ $receiver }}.removed{{ $e.StructField }} {
|
||||
{{- template "dialect/sql/update/convertid" $e -}}
|
||||
eids = append(eids, eid)
|
||||
}
|
||||
@@ -148,9 +148,9 @@ func ({{ $receiver }} *{{ $builder }}) sqlSave(ctx context.Context) ({{ $ret }}
|
||||
{{- end }}
|
||||
}
|
||||
{{- else if $e.O2M }}
|
||||
if len({{ $receiver }}.removed{{ pascal $e.Name }}) > 0 {
|
||||
eids := make([]int, len({{ $receiver }}.removed{{ pascal $e.Name }}))
|
||||
for eid := range {{ $receiver }}.removed{{ pascal $e.Name }} {
|
||||
if len({{ $receiver }}.removed{{ $e.StructField }}) > 0 {
|
||||
eids := make([]int, len({{ $receiver }}.removed{{ $e.StructField }}))
|
||||
for eid := range {{ $receiver }}.removed{{ $e.StructField }} {
|
||||
{{- template "dialect/sql/update/convertid" $e -}}
|
||||
eids = append(eids, eid)
|
||||
}
|
||||
@@ -164,7 +164,7 @@ func ({{ $receiver }} *{{ $builder }}) sqlSave(ctx context.Context) ({{ $ret }}
|
||||
}
|
||||
}
|
||||
{{- else }}{{/* O2O or M2O */}}
|
||||
if {{ $receiver }}.cleared{{ pascal $e.Name }} {
|
||||
if {{ $receiver }}.cleared{{ $e.StructField }} {
|
||||
query, args := sql.Update({{ $.Package }}.{{ $e.TableConstant }}).
|
||||
SetNull({{ $.Package }}.{{ $e.ColumnConstant }}).
|
||||
Where(sql.InInts({{ $e.Type.Package }}.{{ $e.Type.ID.Constant }}, ids...)).
|
||||
|
||||
Reference in New Issue
Block a user