@@ -80,20 +80,38 @@ func (q *Query) SetDelimiterOR(d string) *Query {
80
80
return q
81
81
}
82
82
83
- // Fields returns elements list separated by comma (",") for querying in SELECT statement or a star ("*") if nothing provided
84
- func (p * Query ) FieldsSQL () string {
83
+ // FieldsString returns elements list separated by comma (",") for querying in SELECT statement or a star ("*") if nothing provided
84
+ // return example:
85
+ // when "fields" empty or not provided: `*`
86
+ // when "fields=id,email" return example: `id, email`
87
+ func (p * Query ) FieldsString () string {
85
88
if len (p .Fields ) == 0 {
86
89
return "*"
87
90
}
88
91
return strings .Join (p .Fields , ", " )
89
92
}
90
93
91
- // SelectSQL returns SELECT with fields from Filter "fields" from URL or a star ("*") if nothing provided
92
- func (q * Query ) SelectSQL () string {
94
+ // Select returns elements list separated by comma (",") for querying in SELECT statement or a star ("*") if nothing provided
95
+ // return example:
96
+ // when "fields" empty or not provided: `*`
97
+ // when "fields=id,email" return example: `id, email`
98
+ func (p * Query ) Select () string {
99
+ if len (p .Fields ) == 0 {
100
+ return "*"
101
+ }
102
+ return strings .Join (p .Fields , ", " )
103
+ }
104
+
105
+ // SELECT returns word SELECT with fields from Filter "fields" separated by comma (",") from URL-Query
106
+ // or word SELECT with star ("*") if nothing provided
107
+ // return examples:
108
+ // when "fields" empty or not provided: `SELECT *`
109
+ // when "fields=id,email" return example: `SELECT id, email`
110
+ func (q * Query ) SELECT () string {
93
111
if len (q .Fields ) == 0 {
94
112
return "*"
95
113
}
96
- return fmt .Sprintf ("SELECT %s" , q .FieldsSQL ())
114
+ return fmt .Sprintf ("SELECT %s" , q .FieldsString ())
97
115
}
98
116
99
117
// HaveField returns true if request asks for field
@@ -106,25 +124,28 @@ func (p *Query) AddField(field string) {
106
124
p .Fields = append (p .Fields , field )
107
125
}
108
126
109
- // OffsetSQL returns OFFSET statement
110
- func (p * Query ) OffsetSQL () string {
127
+ // OFFSET returns OFFSET statement
128
+ // return example: `OFFSET 0`
129
+ func (p * Query ) OFFSET () string {
111
130
if p .Offset > 0 {
112
131
return fmt .Sprintf (" OFFSET %d" , p .Offset )
113
132
}
114
133
return ""
115
134
}
116
135
117
- // LimitSQL returns LIMIT statement
118
- func (p * Query ) LimitSQL () string {
136
+ // LIMIT returns LIMIT statement
137
+ // return example: `LIMIT 100`
138
+ func (p * Query ) LIMIT () string {
119
139
if p .Limit > 0 {
120
140
return fmt .Sprintf (" LIMIT %d" , p .Limit )
121
141
}
122
142
return ""
123
143
}
124
144
125
- // Sort returns list of elements for ORDER BY statement
145
+ // Order returns list of elements for ORDER BY statement
126
146
// you can use +/- prefix to specify direction of sorting (+ is default)
127
- func (p * Query ) Sort () string {
147
+ // return example: `id DESC, email`
148
+ func (p * Query ) Order () string {
128
149
if len (p .Sorts ) == 0 {
129
150
return ""
130
151
}
@@ -145,13 +166,14 @@ func (p *Query) Sort() string {
145
166
return s
146
167
}
147
168
148
- // Sort returns ORDER BY statement with list of elements for sorting
169
+ // ORDER returns ORDER BY statement with list of elements for sorting
149
170
// you can use +/- prefix to specify direction of sorting (+ is default)
150
- func (q * Query ) SortSQL () string {
171
+ // return example: `ORDER BY id DESC, email`
172
+ func (q * Query ) ORDER () string {
151
173
if len (q .Sorts ) == 0 {
152
174
return ""
153
175
}
154
- return fmt .Sprintf (" ORDER BY %s" , q .Sort ())
176
+ return fmt .Sprintf (" ORDER BY %s" , q .Order ())
155
177
}
156
178
157
179
// HaveSortBy returns true if request contains some sorting
@@ -278,6 +300,7 @@ func (p *Query) ReplaceNames(r Replacer) {
278
300
}
279
301
280
302
// Where returns list of filters for WHERE statement
303
+ // return example: `id > 0 AND email LIKE '[email protected] '`
281
304
func (p * Query ) Where () string {
282
305
283
306
if len (p .Filters ) == 0 {
@@ -324,8 +347,9 @@ func (p *Query) Where() string {
324
347
return where
325
348
}
326
349
327
- // WhereSQL returns list of filters for WHERE SQL statement
328
- func (p * Query ) WhereSQL () string {
350
+ // WHERE returns list of filters for WHERE SQL statement with `WHERE` word
351
+ // return example: `WHERE id > 0 AND email LIKE '[email protected] '`
352
+ func (p * Query ) WHERE () string {
329
353
330
354
if len (p .Filters ) == 0 {
331
355
return ""
@@ -358,13 +382,13 @@ func (p *Query) Args() []interface{} {
358
382
359
383
func (p * Query ) SQL (table string ) string {
360
384
return fmt .Sprintf (
361
- "SELECT %s FROM %s%s%s%s%s" ,
362
- p .FieldsSQL (),
385
+ "%s FROM %s%s%s%s%s" ,
386
+ p .SELECT (),
363
387
table ,
364
- p .WhereSQL (),
365
- p .SortSQL (),
366
- p .LimitSQL (),
367
- p .OffsetSQL (),
388
+ p .WHERE (),
389
+ p .ORDER (),
390
+ p .LIMIT (),
391
+ p .OFFSET (),
368
392
)
369
393
}
370
394
0 commit comments