Skip to content

Commit a2252f2

Browse files
author
timsolov
committed
* rename funcs * add comments
1 parent 9231010 commit a2252f2

File tree

3 files changed

+53
-29
lines changed

3 files changed

+53
-29
lines changed

Diff for: cmd/main.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,6 @@ func main() {
6060
q.Parse()
6161

6262
fmt.Println(q.SQL("table")) // SELECT id, name FROM table ORDER BY id LIMIT 10
63-
fmt.Println(q.FieldsSQL()) // id, name
63+
fmt.Println(q.Select()) // id, name
6464
fmt.Println(q.Args()) // []
6565
}

Diff for: main.go

+46-22
Original file line numberDiff line numberDiff line change
@@ -80,20 +80,38 @@ func (q *Query) SetDelimiterOR(d string) *Query {
8080
return q
8181
}
8282

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 {
8588
if len(p.Fields) == 0 {
8689
return "*"
8790
}
8891
return strings.Join(p.Fields, ", ")
8992
}
9093

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 {
93111
if len(q.Fields) == 0 {
94112
return "*"
95113
}
96-
return fmt.Sprintf("SELECT %s", q.FieldsSQL())
114+
return fmt.Sprintf("SELECT %s", q.FieldsString())
97115
}
98116

99117
// HaveField returns true if request asks for field
@@ -106,25 +124,28 @@ func (p *Query) AddField(field string) {
106124
p.Fields = append(p.Fields, field)
107125
}
108126

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 {
111130
if p.Offset > 0 {
112131
return fmt.Sprintf(" OFFSET %d", p.Offset)
113132
}
114133
return ""
115134
}
116135

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 {
119139
if p.Limit > 0 {
120140
return fmt.Sprintf(" LIMIT %d", p.Limit)
121141
}
122142
return ""
123143
}
124144

125-
// Sort returns list of elements for ORDER BY statement
145+
// Order returns list of elements for ORDER BY statement
126146
// 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 {
128149
if len(p.Sorts) == 0 {
129150
return ""
130151
}
@@ -145,13 +166,14 @@ func (p *Query) Sort() string {
145166
return s
146167
}
147168

148-
// Sort returns ORDER BY statement with list of elements for sorting
169+
// ORDER returns ORDER BY statement with list of elements for sorting
149170
// 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 {
151173
if len(q.Sorts) == 0 {
152174
return ""
153175
}
154-
return fmt.Sprintf(" ORDER BY %s", q.Sort())
176+
return fmt.Sprintf(" ORDER BY %s", q.Order())
155177
}
156178

157179
// HaveSortBy returns true if request contains some sorting
@@ -278,6 +300,7 @@ func (p *Query) ReplaceNames(r Replacer) {
278300
}
279301

280302
// Where returns list of filters for WHERE statement
303+
// return example: `id > 0 AND email LIKE '[email protected]'`
281304
func (p *Query) Where() string {
282305

283306
if len(p.Filters) == 0 {
@@ -324,8 +347,9 @@ func (p *Query) Where() string {
324347
return where
325348
}
326349

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 {
329353

330354
if len(p.Filters) == 0 {
331355
return ""
@@ -358,13 +382,13 @@ func (p *Query) Args() []interface{} {
358382

359383
func (p *Query) SQL(table string) string {
360384
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(),
363387
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(),
368392
)
369393
}
370394

Diff for: main_test.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ func TestFields(t *testing.T) {
3030
q.AddValidation("fields", In("id", "name"))
3131
err = q.Parse()
3232
assert.Equal(t, c.err, err)
33-
assert.Equal(t, c.expected, q.FieldsSQL())
33+
assert.Equal(t, c.expected, q.FieldsString())
3434
}
3535
}
3636

@@ -58,7 +58,7 @@ func TestOffset(t *testing.T) {
5858
AddValidation("offset", Max(10))
5959
err = q.Parse()
6060
assert.Equal(t, c.err, errors.Cause(err))
61-
assert.Equal(t, c.expected, q.OffsetSQL())
61+
assert.Equal(t, c.expected, q.OFFSET())
6262
}
6363
}
6464

@@ -81,7 +81,7 @@ func TestLimit(t *testing.T) {
8181
AddValidation("limit", Max(10))
8282
err = q.Parse()
8383
assert.Equal(t, c.err, errors.Cause(err))
84-
assert.Equal(t, c.expected, q.LimitSQL())
84+
assert.Equal(t, c.expected, q.LIMIT())
8585
}
8686
}
8787

@@ -111,7 +111,7 @@ func TestSort(t *testing.T) {
111111
assert.NoError(t, err)
112112
q, err := NewParse(URL.Query(), Validations{"sort": In("id", "name")})
113113
assert.Equal(t, c.err, err)
114-
assert.Equal(t, c.expected, q.SortSQL())
114+
assert.Equal(t, c.expected, q.ORDER())
115115
}
116116

117117
q := New().SetValidations(Validations{"sort": In("id")})
@@ -190,7 +190,7 @@ func TestWhere(t *testing.T) {
190190
if len(c.err) > 0 {
191191
assert.EqualError(t, err, c.err)
192192
}
193-
where := q.WhereSQL()
193+
where := q.WHERE()
194194
//t.Log(q.SQL("table"), q.Args())
195195
if len(c.expected2) > 0 {
196196
//t.Log("expected:", c.expected, "or:", c.expected2, "got:", where)
@@ -341,7 +341,7 @@ func TestAddField(t *testing.T) {
341341
q.AddField("test")
342342
assert.Len(t, q.Fields, 1)
343343
assert.True(t, q.HaveField("test"))
344-
assert.Equal(t, "test", q.FieldsSQL())
344+
assert.Equal(t, "test", q.FieldsString())
345345
}
346346

347347
func TestAddFilter(t *testing.T) {

0 commit comments

Comments
 (0)