@@ -20,10 +20,34 @@ type rangeType Object
20
20
// A rangeType object with the specified field ready for defining range conditions.
21
21
func Range (key string ) rangeType {
22
22
return rangeType {
23
- key : Object {},
23
+ "range" : Object {
24
+ key : Object {},
25
+ },
24
26
}
25
27
}
26
28
29
+ func (r rangeType ) putInTheField (key string , value any ) rangeType {
30
+ if rang , ok := r ["range" ].(Object ); ok {
31
+ for field := range rang {
32
+ if fieldObject , foOk := rang [field ].(Object ); foOk {
33
+ fieldObject [key ] = value
34
+ }
35
+ }
36
+ }
37
+ return r
38
+ }
39
+
40
+ func (r rangeType ) delete (key string ) rangeType {
41
+ if rang , ok := r ["range" ].(Object ); ok {
42
+ for field := range rang {
43
+ if fieldObject , foOk := rang [field ].(Object ); foOk {
44
+ delete (fieldObject , key )
45
+ }
46
+ }
47
+ }
48
+ return r
49
+ }
50
+
27
51
// LesserThan sets the "lt" (less than) field for the range query.
28
52
//
29
53
// This method specifies that the range query should match values that are less than
@@ -42,13 +66,7 @@ func Range(key string) rangeType {
42
66
//
43
67
// The updated rangeType object with the "lt" field set to the specified value.
44
68
func (r rangeType ) LesserThan (lt any ) rangeType {
45
- for key := range r {
46
- if rangeObject , ok := r [key ].(Object ); ok {
47
- rangeObject ["lt" ] = lt
48
- delete (rangeObject , "lte" )
49
- }
50
- }
51
- return r
69
+ return r .putInTheField ("lt" , lt ).delete ("lte" )
52
70
}
53
71
54
72
// LesserThanOrEqual sets the "lte" (less than or equal to) field for the range query.
@@ -69,13 +87,7 @@ func (r rangeType) LesserThan(lt any) rangeType {
69
87
//
70
88
// The updated rangeType object with the "lte" field set to the specified value.
71
89
func (r rangeType ) LesserThanOrEqual (lte any ) rangeType {
72
- for key := range r {
73
- if rangeObject , ok := r [key ].(Object ); ok {
74
- rangeObject ["lte" ] = lte
75
- delete (rangeObject , "lt" )
76
- }
77
- }
78
- return r
90
+ return r .putInTheField ("lte" , lte ).delete ("lt" )
79
91
}
80
92
81
93
// GreaterThan sets the "gt" (greater than) field for the range query.
@@ -96,13 +108,7 @@ func (r rangeType) LesserThanOrEqual(lte any) rangeType {
96
108
//
97
109
// The updated rangeType object with the "gt" field set to the specified value.
98
110
func (r rangeType ) GreaterThan (gt any ) rangeType {
99
- for key := range r {
100
- if rangeObject , ok := r [key ].(Object ); ok {
101
- rangeObject ["gt" ] = gt
102
- delete (rangeObject , "gte" )
103
- }
104
- }
105
- return r
111
+ return r .putInTheField ("gt" , gt ).delete ("gte" )
106
112
}
107
113
108
114
// GreaterThanOrEqual sets the "gte" (greater than or equal to) field for the range query.
@@ -123,13 +129,7 @@ func (r rangeType) GreaterThan(gt any) rangeType {
123
129
//
124
130
// The updated rangeType object with the "gte" field set to the specified value.
125
131
func (r rangeType ) GreaterThanOrEqual (gte any ) rangeType {
126
- for key := range r {
127
- if rangeObject , ok := r [key ].(Object ); ok {
128
- rangeObject ["gte" ] = gte
129
- delete (rangeObject , "gt" )
130
- }
131
- }
132
- return r
132
+ return r .putInTheField ("gte" , gte ).delete ("gt" )
133
133
}
134
134
135
135
// Format sets the "format" field for the range query.
@@ -150,12 +150,7 @@ func (r rangeType) GreaterThanOrEqual(gte any) rangeType {
150
150
//
151
151
// The updated rangeType object with the "format" field set to the specified value.
152
152
func (r rangeType ) Format (format string ) rangeType {
153
- for key := range r {
154
- if rangeObject , ok := r [key ].(Object ); ok {
155
- rangeObject ["format" ] = format
156
- }
157
- }
158
- return r
153
+ return r .putInTheField ("format" , format )
159
154
}
160
155
161
156
// Boost sets the "boost" field for the range query.
@@ -175,10 +170,5 @@ func (r rangeType) Format(format string) rangeType {
175
170
//
176
171
// The updated rangeType object with the "boost" field set to the specified value.
177
172
func (r rangeType ) Boost (boost float64 ) rangeType {
178
- for key := range r {
179
- if rangeObject , ok := r [key ].(Object ); ok {
180
- rangeObject ["boost" ] = boost
181
- }
182
- }
183
- return r
173
+ return r .putInTheField ("boost" , boost )
184
174
}
0 commit comments