Skip to content

Commit 478255a

Browse files
committed
Standardize adapter and repository
1 parent df3aa19 commit 478255a

File tree

4 files changed

+31
-21
lines changed

4 files changed

+31
-21
lines changed

adapter/search.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,23 @@ type SearchAdapter[T any, K any, F any] struct {
1414
BuildQuery func(F) (string, []interface{})
1515
Mp func(*T)
1616
Map map[string]int
17-
ToArray func(interface{}) interface {
18-
driver.Valuer
19-
sql.Scanner
20-
}
2117
}
2218

2319
func NewSearchAdapter[T any, K any, F any](db *sql.DB, table string, buildQuery func(F) (string, []interface{}), options ...func(*T)) (*SearchAdapter[T, K, F], error) {
24-
return NewSearchAdapterWithArray[T, K, F](db, table, buildQuery, nil, "", nil, options...)
20+
return NewSearchAdapterWithVersionAndArray[T, K, F](db, table, buildQuery, nil, "", nil, options...)
2521
}
2622
func NewSearchAdapterWithVersion[T any, K any, F any](db *sql.DB, table string, buildQuery func(F) (string, []interface{}), versionField string, options ...func(*T)) (*SearchAdapter[T, K, F], error) {
27-
return NewSearchAdapterWithArray[T, K, F](db, table, buildQuery, nil, versionField, nil, options...)
23+
return NewSearchAdapterWithVersionAndArray[T, K, F](db, table, buildQuery, nil, versionField, nil, options...)
2824
}
2925
func NewSearchAdapterWithArray[T any, K any, F any](db *sql.DB, table string, buildQuery func(F) (string, []interface{}), toArray func(interface{}) interface {
3026
driver.Valuer
3127
sql.Scanner
28+
}, opts ...func(*T)) (*SearchAdapter[T, K, F], error) {
29+
return NewSearchAdapterWithVersionAndArray[T, K, F](db, table, buildQuery, toArray, "", nil, opts...)
30+
}
31+
func NewSearchAdapterWithVersionAndArray[T any, K any, F any](db *sql.DB, table string, buildQuery func(F) (string, []interface{}), toArray func(interface{}) interface {
32+
driver.Valuer
33+
sql.Scanner
3234
}, versionField string, buildParam func(int) string, opts ...func(*T)) (*SearchAdapter[T, K, F], error) {
3335
adapter, err := NewAdapterWithVersionAndArray[T, K](db, table, versionField, toArray, buildParam)
3436
if err != nil {
@@ -47,7 +49,7 @@ func NewSearchAdapterWithArray[T any, K any, F any](db *sql.DB, table string, bu
4749
if err != nil {
4850
return nil, err
4951
}
50-
builder := &SearchAdapter[T, K, F]{Adapter: adapter, Map: fieldsIndex, BuildQuery: buildQuery, Mp: mp, ToArray: toArray}
52+
builder := &SearchAdapter[T, K, F]{Adapter: adapter, Map: fieldsIndex, BuildQuery: buildQuery, Mp: mp}
5153
return builder, nil
5254
}
5355

query/query.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,17 @@ type Query[T any, K any, F any] struct {
1717
}
1818

1919
func NewQuery[T any, K any, F any](db *sql.DB, table string, buildQuery func(F) (string, []interface{}), opts ...func(*T)) (*Query[T, K, F], error) {
20-
return NewQueryWithArray[T, K, F](db, table, buildQuery, nil, nil, opts...)
20+
return NewQueryWithArrayAndParam[T, K, F](db, table, buildQuery, nil, nil, opts...)
2121
}
2222
func NewQueryWithArray[T any, K any, F any](db *sql.DB, table string, buildQuery func(F) (string, []interface{}), toArray func(interface{}) interface {
2323
driver.Valuer
2424
sql.Scanner
25+
}, opts ...func(*T)) (*Query[T, K, F], error) {
26+
return NewQueryWithArrayAndParam[T, K, F](db, table, buildQuery, nil, nil, opts...)
27+
}
28+
func NewQueryWithArrayAndParam[T any, K any, F any](db *sql.DB, table string, buildQuery func(F) (string, []interface{}), toArray func(interface{}) interface {
29+
driver.Valuer
30+
sql.Scanner
2531
}, buildParam func(int) string, opts ...func(*T)) (*Query[T, K, F], error) {
2632
var mp func(*T)
2733
if len(opts) >= 1 {

repository/repository.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ func NewRepository[T any, K any](db *sql.DB, tableName string, opts ...func(int)
2525
func NewRepositoryWithVersion[T any, K any](db *sql.DB, tableName string, versionField string, opts ...func(int) string) (*Repository[T, K], error) {
2626
return NewRepositoryWithVersionAndArray[T, K](db, tableName, versionField, nil, opts...)
2727
}
28-
func NewSqlRepositoryWithArray[T any, K any](db *sql.DB, tableName string, toArray func(interface{}) interface {
28+
func NewRepositoryWithArray[T any, K any](db *sql.DB, tableName string, toArray func(interface{}) interface {
2929
driver.Valuer
3030
sql.Scanner
3131
}, opts ...func(int) string) (*Repository[T, K], error) {
@@ -35,7 +35,7 @@ func NewRepositoryWithVersionAndArray[T any, K any](db *sql.DB, tableName string
3535
driver.Valuer
3636
sql.Scanner
3737
}, opts ...func(int) string) (*Repository[T, K], error) {
38-
repo, err := NewSqlWriterWithVersionAndArray[*T](db, tableName, versionField, toArray, opts...)
38+
repository, err := NewSqlWriterWithVersionAndArray[*T](db, tableName, versionField, toArray, opts...)
3939
if err != nil {
4040
return nil, err
4141
}
@@ -49,7 +49,7 @@ func NewRepositoryWithVersionAndArray[T any, K any](db *sql.DB, tableName string
4949
var k K
5050
kType := reflect.TypeOf(k)
5151
idMap := false
52-
if len(repo.Keys) > 1 {
52+
if len(repository.Keys) > 1 {
5353
if kType.Kind() == reflect.Map {
5454
idMap = true
5555
} else if kType.Kind() != reflect.Struct {
@@ -61,8 +61,8 @@ func NewRepositoryWithVersionAndArray[T any, K any](db *sql.DB, tableName string
6161
if err != nil {
6262
return nil, err
6363
}
64-
fields := q.BuildFieldsBySchema(repo.Schema)
65-
return &Repository[T, K]{repo, fieldsIndex, fields, idMap}, nil
64+
fields := q.BuildFieldsBySchema(repository.Schema)
65+
return &Repository[T, K]{repository, fieldsIndex, fields, idMap}, nil
6666
}
6767

6868
func (a *Repository[T, K]) All(ctx context.Context) ([]T, error) {

repository/search.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,25 @@ type SearchRepository[T any, K any, F any] struct {
1414
BuildQuery func(F) (string, []interface{})
1515
Mp func(*T)
1616
Map map[string]int
17-
ToArray func(interface{}) interface {
18-
driver.Valuer
19-
sql.Scanner
20-
}
2117
}
2218

2319
func NewSearchRepository[T any, K any, F any](db *sql.DB, table string, buildQuery func(F) (string, []interface{}), options ...func(*T)) (*SearchRepository[T, K, F], error) {
24-
return NewSearchRepositoryWithArray[T, K, F](db, table, buildQuery, nil, "", nil, options...)
20+
return NewSearchRepositoryWithVersionAndArray[T, K, F](db, table, buildQuery, nil, "", nil, options...)
2521
}
2622
func NewSearchRepositoryWithVersion[T any, K any, F any](db *sql.DB, table string, buildQuery func(F) (string, []interface{}), versionField string, options ...func(*T)) (*SearchRepository[T, K, F], error) {
27-
return NewSearchRepositoryWithArray[T, K, F](db, table, buildQuery, nil, versionField, nil, options...)
23+
return NewSearchRepositoryWithVersionAndArray[T, K, F](db, table, buildQuery, nil, versionField, nil, options...)
2824
}
2925
func NewSearchRepositoryWithArray[T any, K any, F any](db *sql.DB, table string, buildQuery func(F) (string, []interface{}), toArray func(interface{}) interface {
3026
driver.Valuer
3127
sql.Scanner
28+
}, opts ...func(*T)) (*SearchRepository[T, K, F], error) {
29+
return NewSearchRepositoryWithVersionAndArray[T, K, F](db, table, buildQuery, toArray, "", nil, opts...)
30+
}
31+
func NewSearchRepositoryWithVersionAndArray[T any, K any, F any](db *sql.DB, table string, buildQuery func(F) (string, []interface{}), toArray func(interface{}) interface {
32+
driver.Valuer
33+
sql.Scanner
3234
}, versionField string, buildParam func(int) string, opts ...func(*T)) (*SearchRepository[T, K, F], error) {
33-
repo, err := NewRepositoryWithVersionAndArray[T, K](db, table, versionField, toArray, buildParam)
35+
repository, err := NewRepositoryWithVersionAndArray[T, K](db, table, versionField, toArray, buildParam)
3436
if err != nil {
3537
return nil, err
3638
}
@@ -47,7 +49,7 @@ func NewSearchRepositoryWithArray[T any, K any, F any](db *sql.DB, table string,
4749
if err != nil {
4850
return nil, err
4951
}
50-
builder := &SearchRepository[T, K, F]{Repository: repo, Map: fieldsIndex, BuildQuery: buildQuery, Mp: mp, ToArray: toArray}
52+
builder := &SearchRepository[T, K, F]{Repository: repository, Map: fieldsIndex, BuildQuery: buildQuery, Mp: mp}
5153
return builder, nil
5254
}
5355

0 commit comments

Comments
 (0)