Handle updates on pointer fields.

This commit is contained in:
mikestefanello 2025-04-13 13:58:50 -04:00
parent 8c3f04e859
commit aacb3d358f
5 changed files with 45 additions and 13 deletions

View file

@ -122,10 +122,22 @@
op := entity.Update()
{{- range $f := $n.Fields }}
{{- if not $f.Immutable }}
{{- if (fieldIsPointer $f) }}
{{- if $f.Sensitive }}
if payload.{{ fieldName $f.Name }} != nil {
op.Set{{ fieldName $f.Name }}(*payload.{{ fieldName $f.Name }})
}
{{- else if $f.Nillable }}
op.SetNillable{{ fieldName $f.Name }}(payload.{{ fieldName $f.Name }})
if payload.{{ fieldName $f.Name }} != nil {
op.Clear{{ fieldName $f.Name }}()
}
{{- else if (fieldIsPointer $f) }}
if payload.{{ fieldName $f.Name }} == nil {
var empty {{ $f.Type }}
op.Set{{ fieldName $f.Name }}(empty)
} else {
op.Set{{ fieldName $f.Name }}(*payload.{{ fieldName $f.Name }})
}
{{- else }}
op.Set{{ fieldName $f.Name }}(payload.{{ fieldName $f.Name }})
{{- end }}