entc/gen: add inc/dec capability for numeric fields

Reviewed By: alexsn

Differential Revision: D17259987

fbshipit-source-id: ad5ba1ba7383418463bc9137d82f16eadef809e7
This commit is contained in:
Ariel Mashraki
2019-09-10 05:59:04 -07:00
committed by Facebook Github Bot
parent b59fb59b9a
commit d820361a3a
28 changed files with 1218 additions and 434 deletions

View File

@@ -68,17 +68,34 @@ func ({{ $receiver }} *{{ $builder }}) sqlSave(ctx context.Context) ({{ $ret }}
)
{{- range $_, $f := $.Fields }}
{{- if or (not $f.Immutable) $f.UpdateDefault }}
if {{ $receiver }}.{{ $f.StructField }} != nil {
if value := {{ $receiver }}.{{ $f.StructField }}; value != nil {
update = true
builder.Set({{ $.Package }}.{{ $f.Constant }}, *{{ $receiver }}.{{ $f.StructField }})
builder.Set({{ $.Package }}.{{ $f.Constant }}, *value)
{{- if $one }}
{{- if $f.Nillable }}
{{ $.Receiver }}.{{ pascal $f.Name }} = {{ $receiver }}.{{ $f.StructField }}
{{ $.Receiver }}.{{ pascal $f.Name }} = value
{{- else }}
{{ $.Receiver }}.{{ pascal $f.Name }} = *{{ $receiver }}.{{ $f.StructField }}
{{ $.Receiver }}.{{ pascal $f.Name }} = *value
{{- end }}
{{- end }}
}
{{- if $f.Type.Numeric }}
if value := {{ $receiver }}.add{{ $f.StructField }}; value != nil {
update = true
builder.Add({{ $.Package }}.{{ $f.Constant }}, *value)
{{- if $one }}
{{- if $f.Nillable }}
if {{ $.Receiver }}.{{ pascal $f.Name }} != nil {
*{{ $.Receiver }}.{{ pascal $f.Name }} += *value
} else {
{{ $.Receiver }}.{{ pascal $f.Name }} = value
}
{{- else }}
{{ $.Receiver }}.{{ pascal $f.Name }} += *value
{{- end }}
{{- end }}
}
{{- end }}
{{- end }}
{{- end }}
if update {