Skip to content

Commit 14af37c

Browse files
authored
make builders exported (#6)
1 parent 3fbc7aa commit 14af37c

File tree

13 files changed

+197
-83
lines changed

13 files changed

+197
-83
lines changed

.golangci.yml

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
version: "2"
2+
run:
3+
modules-download-mode: readonly
4+
tests: false
5+
allow-parallel-runners: true
6+
linters:
7+
default: all
8+
disable:
9+
- depguard
10+
- err113
11+
- exhaustive
12+
- exhaustruct
13+
- gochecknoglobals
14+
- godox
15+
- mnd
16+
- nlreturn
17+
- recvcheck
18+
- tagalign
19+
- varnamelen
20+
- wrapcheck
21+
- wsl
22+
- ireturn
23+
settings:
24+
cyclop:
25+
max-complexity: 25
26+
funlen:
27+
lines: 190
28+
statements: -1
29+
ignore-comments: true
30+
gocognit:
31+
min-complexity: 80
32+
gocyclo:
33+
min-complexity: 45
34+
interfacebloat:
35+
max: 20
36+
lll:
37+
line-length: 170
38+
tab-width: 2
39+
tagliatelle:
40+
case:
41+
rules:
42+
json: snake
43+
yaml: snake
44+
use-field-name: true
45+
exclusions:
46+
generated: lax
47+
presets:
48+
- comments
49+
- common-false-positives
50+
- legacy
51+
- std-error-handling
52+
rules:
53+
- linters:
54+
- funlen
55+
- misspell
56+
path: _test\.go
57+
- path: (.+)\.go$
58+
text: missing type in composite literal
59+
- path: (.+)\.go$
60+
text: "var-naming: don't use an underscore in package name"
61+
- path: (.+)\.go$
62+
text: should not use underscores in package names
63+
paths:
64+
- .*\.sql\.go
65+
- .*\.pb\.go
66+
- .*\.connect\.go
67+
- bin
68+
- api
69+
- schema
70+
- sql
71+
- internal/templates
72+
- pb
73+
- schema
74+
- third_party$
75+
- builtin$
76+
- examples$
77+
issues:
78+
fix: true
79+
severity:
80+
default: error
81+
rules:
82+
- linters:
83+
- godox
84+
severity: warning
85+
- linters:
86+
- dupl
87+
severity: info
88+
formatters:
89+
enable:
90+
- gci
91+
- gofmt
92+
- gofumpt
93+
- goimports
94+
exclusions:
95+
generated: lax
96+
paths:
97+
- .*\.sql\.go
98+
- .*\.pb\.go
99+
- .*\.connect\.go
100+
- bin
101+
- api
102+
- schema
103+
- sql
104+
- internal/templates
105+
- pb
106+
- schema
107+
- third_party$
108+
- builtin$
109+
- examples$

Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
tests:
22
go test -v ./...
3+
4+
lint:
5+
golangci-lint run

cast_types.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package tsbuilder
22

33
import (
44
"fmt"
5+
"strconv"
56

67
"github.com/tkcrm/tsbuilder/tsfuncs"
78
)
@@ -13,9 +14,9 @@ func castType(value any) (string, error) {
1314
case float32, float64:
1415
return fmt.Sprintf("%f", v), nil
1516
case string:
16-
return fmt.Sprint("'" + v + "'"), nil
17+
return "'" + v + "'", nil
1718
case bool:
18-
return fmt.Sprintf("%v", v), nil
19+
return strconv.FormatBool(v), nil
1920
case tsfuncs.TDEngineFunc:
2021
return v.String(), nil
2122
case nil:

common.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package tsbuilder
22

3-
type tdEngineSqlBuilder interface {
3+
type TdEngineSQLBuilder interface {
44
Build() (sql string, err error)
55
}

database.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,30 @@ import (
66
"strings"
77
)
88

9-
var _ tdEngineSqlBuilder = (*databaseBuilder)(nil)
9+
var _ TdEngineSQLBuilder = (*DatabaseBuilder)(nil)
1010

11-
type databaseBuilder struct {
11+
type DatabaseBuilder struct {
1212
name string
1313
options []string
1414
}
1515

16-
func NewDatabaseBuilder() *databaseBuilder {
17-
return &databaseBuilder{
16+
func NewDatabaseBuilder() *DatabaseBuilder {
17+
return &DatabaseBuilder{
1818
options: make([]string, 0),
1919
}
2020
}
2121

22-
func (s *databaseBuilder) Name(name string) *databaseBuilder {
22+
func (s *DatabaseBuilder) Name(name string) *DatabaseBuilder {
2323
s.name = name
2424
return s
2525
}
2626

27-
func (s *databaseBuilder) Options(options ...string) *databaseBuilder {
27+
func (s *DatabaseBuilder) Options(options ...string) *DatabaseBuilder {
2828
s.options = append(s.options, options...)
2929
return s
3030
}
3131

32-
func (s *databaseBuilder) Build() (string, error) {
32+
func (s *DatabaseBuilder) Build() (string, error) {
3333
if err := s.validate(); err != nil {
3434
return "", fmt.Errorf("validate error: %w", err)
3535
}
@@ -48,7 +48,7 @@ func (s *databaseBuilder) Build() (string, error) {
4848
return b.String(), nil
4949
}
5050

51-
func (s databaseBuilder) validate() error {
51+
func (s DatabaseBuilder) validate() error {
5252
if s.name == "" {
5353
return ErrEmptyDatabaseName
5454
}

delete.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,30 @@ import (
66
"strings"
77
)
88

9-
var _ tdEngineSqlBuilder = (*deleteBuilder)(nil)
9+
var _ TdEngineSQLBuilder = (*DeleteBuilder)(nil)
1010

11-
type deleteBuilder struct {
11+
type DeleteBuilder struct {
1212
from string
1313
whereConditions []string
1414
}
1515

16-
func NewDeleteBuilder() *deleteBuilder {
17-
return &deleteBuilder{
16+
func NewDeleteBuilder() *DeleteBuilder {
17+
return &DeleteBuilder{
1818
whereConditions: make([]string, 0),
1919
}
2020
}
2121

22-
func (s *deleteBuilder) From(from string) *deleteBuilder {
22+
func (s *DeleteBuilder) From(from string) *DeleteBuilder {
2323
s.from = from
2424
return s
2525
}
2626

27-
func (s *deleteBuilder) Where(conditions ...string) *deleteBuilder {
27+
func (s *DeleteBuilder) Where(conditions ...string) *DeleteBuilder {
2828
s.whereConditions = append(s.whereConditions, conditions...)
2929
return s
3030
}
3131

32-
func (s *deleteBuilder) Build() (string, error) {
32+
func (s *DeleteBuilder) Build() (string, error) {
3333
if err := s.validate(); err != nil {
3434
return "", fmt.Errorf("validate error: %w", err)
3535
}
@@ -51,7 +51,7 @@ func (s *deleteBuilder) Build() (string, error) {
5151
return b.String(), nil
5252
}
5353

54-
func (s *deleteBuilder) validate() error {
54+
func (s *DeleteBuilder) validate() error {
5555
if s.from == "" {
5656
return ErrEmptyTableName
5757
}

drop_table.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,29 @@ package tsbuilder
22

33
import (
44
"bytes"
5+
"errors"
56
"fmt"
67
"strings"
78
)
89

9-
var _ tdEngineSqlBuilder = (*dropTableBuilder)(nil)
10+
var _ TdEngineSQLBuilder = (*DropTableBuilder)(nil)
1011

11-
type dropTableBuilder struct {
12+
type DropTableBuilder struct {
1213
tables []string
1314
}
1415

15-
func NewDropTableBuilder() *dropTableBuilder {
16-
return &dropTableBuilder{
16+
func NewDropTableBuilder() *DropTableBuilder {
17+
return &DropTableBuilder{
1718
tables: make([]string, 0),
1819
}
1920
}
2021

21-
func (s *dropTableBuilder) Tables(tables ...string) *dropTableBuilder {
22+
func (s *DropTableBuilder) Tables(tables ...string) *DropTableBuilder {
2223
s.tables = append(s.tables, tables...)
2324
return s
2425
}
2526

26-
func (s *dropTableBuilder) Build() (string, error) {
27+
func (s *DropTableBuilder) Build() (string, error) {
2728
if err := s.validate(); err != nil {
2829
return "", fmt.Errorf("validate error: %w", err)
2930
}
@@ -42,9 +43,9 @@ func (s *dropTableBuilder) Build() (string, error) {
4243
return b.String(), nil
4344
}
4445

45-
func (s *dropTableBuilder) validate() error {
46+
func (s *DropTableBuilder) validate() error {
4647
if len(s.tables) == 0 {
47-
return fmt.Errorf("tables are required")
48+
return errors.New("tables are required")
4849
}
4950

5051
return nil

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
module github.com/tkcrm/tsbuilder
22

3-
go 1.18
3+
go 1.22
44

5-
require github.com/stretchr/testify v1.9.0
5+
require github.com/stretchr/testify v1.10.0
66

77
require (
88
github.com/davecgh/go-spew v1.1.1 // indirect

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
22
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
33
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
44
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
5-
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
6-
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
5+
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
6+
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
77
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
88
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
99
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=

insert.go

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,34 +7,34 @@ import (
77
"strings"
88
)
99

10-
var _ tdEngineSqlBuilder = (*insertBuilder)(nil)
10+
var _ TdEngineSQLBuilder = (*InsertBuilder)(nil)
1111

12-
type insertTableData struct {
12+
type InsertTableData struct {
1313
tableName string
1414
using string
1515
columns []string
1616
values [][]any
1717
tags map[string]any
1818
}
1919

20-
type insertBuilder struct {
21-
tablesData []*insertTableData
20+
type InsertBuilder struct {
21+
tablesData []*InsertTableData
2222
}
2323

24-
func NewInsertBuilder() *insertBuilder {
25-
return &insertBuilder{
26-
tablesData: make([]*insertTableData, 0),
24+
func NewInsertBuilder() *InsertBuilder {
25+
return &InsertBuilder{
26+
tablesData: make([]*InsertTableData, 0),
2727
}
2828
}
2929

30-
func (s *insertBuilder) AddTable(tableName string) *insertTableData {
30+
func (s *InsertBuilder) AddTable(tableName string) *InsertTableData {
3131
for idx, table := range s.tablesData {
3232
if table.tableName == tableName {
3333
s.tablesData = append(s.tablesData[:idx], s.tablesData[idx+1:]...)
3434
}
3535
}
3636

37-
tData := &insertTableData{
37+
tData := &InsertTableData{
3838
tableName: tableName,
3939
tags: make(map[string]any),
4040
columns: make([]string, 0),
@@ -46,22 +46,22 @@ func (s *insertBuilder) AddTable(tableName string) *insertTableData {
4646
return tData
4747
}
4848

49-
func (s *insertTableData) Using(v string) *insertTableData {
49+
func (s *InsertTableData) Using(v string) *InsertTableData {
5050
s.using = v
5151
return s
5252
}
5353

54-
func (s *insertTableData) Columns(columns ...string) *insertTableData {
54+
func (s *InsertTableData) Columns(columns ...string) *InsertTableData {
5555
s.columns = columns
5656
return s
5757
}
5858

59-
func (s *insertTableData) Values(values ...any) *insertTableData {
59+
func (s *InsertTableData) Values(values ...any) *InsertTableData {
6060
s.values = append(s.values, values)
6161
return s
6262
}
6363

64-
func (s *insertTableData) Tags(tags map[string]any) *insertTableData {
64+
func (s *InsertTableData) Tags(tags map[string]any) *InsertTableData {
6565
if tags == nil {
6666
return s
6767
}
@@ -70,7 +70,7 @@ func (s *insertTableData) Tags(tags map[string]any) *insertTableData {
7070
return s
7171
}
7272

73-
func (s *insertBuilder) Build() (string, error) {
73+
func (s *InsertBuilder) Build() (string, error) {
7474
b := bytes.NewBuffer([]byte{})
7575
b.WriteString("INSERT INTO ")
7676

@@ -160,7 +160,7 @@ func (s *insertBuilder) Build() (string, error) {
160160
return b.String(), nil
161161
}
162162

163-
func (s *insertTableData) validate() error {
163+
func (s *InsertTableData) validate() error {
164164
if s.tableName == "" {
165165
return ErrEmptyTableName
166166
}

0 commit comments

Comments
 (0)