@@ -22,18 +22,39 @@ func (v Params) isEmpty() bool {
2222 return len (v .ModelClass .Fields ) == 0
2323}
2424
25+ func splitFieldsByDefault (fields []Field , withDefault func (Field ) string , withoutDefault func (Field ) string ) (nonDefaults , defaults []string ) {
26+ for _ , f := range fields {
27+ if f .Default != "" {
28+ defaults = append (defaults , withDefault (f ))
29+ continue
30+ }
31+
32+ nonDefaults = append (nonDefaults , withoutDefault (f ))
33+ }
34+ return
35+ }
36+
37+ func withoutDefaultCallback (f Field ) string {
38+ return f .Type .String () + " $" + f .Name
39+ }
40+
41+ func withDefaultCallback (f Field ) string {
42+ return withoutDefaultCallback (f ) + " = " + f .Default
43+ }
44+
2545func (v Params ) Args () string {
2646 if v .isEmpty () {
2747 return ""
2848 }
2949
30- var out []string
3150 fields := v .ModelClass .Fields
32- for _ , f := range fields {
33- sig := f .Type .String () + " $" + f .Name
34- out = append (out , sig )
35- }
51+ nonDefaults , defaults := splitFieldsByDefault (
52+ fields ,
53+ withoutDefaultCallback ,
54+ withoutDefaultCallback ,
55+ )
3656
57+ out := append (nonDefaults , defaults ... )
3758 return strings .Join (out , ", " )
3859}
3960
@@ -42,17 +63,14 @@ func (v Params) ArgsWithDefaults() string {
4263 return ""
4364 }
4465
45- var out []string
4666 fields := v .ModelClass .Fields
47- for _ , f := range fields {
48- sig := f .Type .String () + " $" + f .Name
49- if f .Default != "" {
50- sig += " = " + f .Default
51- }
52-
53- out = append (out , sig )
54- }
67+ nonDefaults , defaults := splitFieldsByDefault (
68+ fields ,
69+ withDefaultCallback ,
70+ withoutDefaultCallback ,
71+ )
5572
73+ out := append (nonDefaults , defaults ... )
5674 return strings .Join (out , ", " )
5775}
5876
0 commit comments