Skip to content

Commit cc0f531

Browse files
committed
cmd/generate-database/db: Make linter happy (defer loops)
Signed-off-by: Max Asnaashari <[email protected]>
1 parent a43a57f commit cc0f531

File tree

1 file changed

+38
-7
lines changed

1 file changed

+38
-7
lines changed

cmd/generate-database/db/method.go

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -256,14 +256,24 @@ func (m *Method) getMany(buf *file.Buffer) error {
256256
if m.config["references"] != "" {
257257
parentTable := mapping.TableName(m.entity, m.config["table"])
258258
refFields := strings.Split(m.config["references"], ",")
259-
for _, fieldName := range refFields {
259+
refs := make([]*Mapping, len(refFields))
260+
for i, fieldName := range refFields {
260261
refMapping, err := Parse(m.localPath, m.pkgs, fieldName, m.kind)
261262
if err != nil {
262263
return fmt.Errorf("Parse entity struct: %w", err)
263264
}
264265

265-
defer func() { _ = m.getRefs(buf, parentTable, refMapping) }()
266+
refs[len(refs)-1-i] = refMapping
266267
}
268+
269+
defer func() {
270+
for _, refMapping := range refs {
271+
err = m.getRefs(buf, parentTable, refMapping)
272+
if err != nil {
273+
return
274+
}
275+
}
276+
}()
267277
}
268278

269279
// Go type name the objects to return (e.g. api.Foo).
@@ -792,14 +802,24 @@ func (m *Method) create(buf *file.Buffer, replace bool) error {
792802
if m.config["references"] != "" {
793803
parentTable := mapping.TableName(m.entity, m.config["table"])
794804
refFields := strings.Split(m.config["references"], ",")
795-
for _, fieldName := range refFields {
805+
refs := make([]*Mapping, len(refFields))
806+
for i, fieldName := range refFields {
796807
refMapping, err := Parse(m.localPath, m.pkgs, fieldName, m.kind)
797808
if err != nil {
798809
return fmt.Errorf("Parse entity struct: %w", err)
799810
}
800811

801-
defer func() { _ = m.createRefs(buf, parentTable, refMapping) }()
812+
refs[len(refs)-1-i] = refMapping
802813
}
814+
815+
defer func() {
816+
for _, refMapping := range refs {
817+
err = m.createRefs(buf, parentTable, refMapping)
818+
if err != nil {
819+
return
820+
}
821+
}
822+
}()
803823
}
804824

805825
err = m.signature(buf, false)
@@ -1083,15 +1103,26 @@ func (m *Method) update(buf *file.Buffer) error {
10831103

10841104
if m.config["references"] != "" {
10851105
refFields := strings.Split(m.config["references"], ",")
1086-
for _, fieldName := range refFields {
1087-
parentTable := mapping.TableName(m.entity, m.config["table"])
1106+
parentTable := mapping.TableName(m.entity, m.config["table"])
1107+
refs := make([]*Mapping, len(refFields))
1108+
for i, fieldName := range refFields {
10881109
refMapping, err := Parse(m.localPath, m.pkgs, fieldName, m.kind)
10891110
if err != nil {
10901111
return fmt.Errorf("Parse entity struct: %w", err)
10911112
}
10921113

1093-
defer func() { _ = m.updateRefs(buf, parentTable, refMapping) }()
1114+
refs[len(refs)-1-i] = refMapping
10941115
}
1116+
1117+
defer func() {
1118+
for _, refMapping := range refs {
1119+
err = m.updateRefs(buf, parentTable, refMapping)
1120+
if err != nil {
1121+
return
1122+
}
1123+
}
1124+
}()
1125+
10951126
}
10961127

10971128
nk := mapping.NaturalKey()

0 commit comments

Comments
 (0)