Skip to content

Commit 645bd5d

Browse files
committed
Extract func Compile()
1 parent 3682fa3 commit 645bd5d

3 files changed

Lines changed: 20 additions & 32 deletions

File tree

grade/internal/infrastructure/repositories/endorser/endorser_specifications.go

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,7 @@ type EndorserCanCompleteEndorsementSpecification struct {
1818
}
1919

2020
func (e *EndorserCanCompleteEndorsementSpecification) Compile() (sql string, params []driver.Valuer, err error) {
21-
exp := e.Expression()
22-
tv := is.NewTransformVisitor(GlobalScopeContext{})
23-
err = exp.Accept(tv)
24-
if err != nil {
25-
return "", nil, err
26-
}
27-
exp, err = tv.Result()
28-
if err != nil {
29-
return "", nil, err
30-
}
31-
v := is.NewPostgresqlVisitor()
32-
err = exp.Accept(v)
33-
if err != nil {
34-
return "", []driver.Valuer{}, err
35-
}
36-
return v.Result()
21+
return is.Compile(GlobalScopeContext{}, e.Expression())
3722
}
3823

3924
type EndorserContext struct {

grade/internal/infrastructure/seedwork/specification/postgresql_visitor.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,24 @@ import (
88
s "github.com/emacsway/grade/grade/internal/domain/seedwork/specification"
99
)
1010

11+
func Compile(context Context, exp s.Visitable) (sql string, params []driver.Valuer, err error) {
12+
tv := NewTransformVisitor(context)
13+
err = exp.Accept(tv)
14+
if err != nil {
15+
return "", nil, err
16+
}
17+
exp, err = tv.Result()
18+
if err != nil {
19+
return "", nil, err
20+
}
21+
v := NewPostgresqlVisitor()
22+
err = exp.Accept(v)
23+
if err != nil {
24+
return "", nil, err
25+
}
26+
return v.Result()
27+
}
28+
1129
type PostgresqlVisitorOption func(*PostgresqlVisitor)
1230

1331
func PlaceholderIndex(index uint8) PostgresqlVisitorOption {

grade/internal/infrastructure/seedwork/specification/transform_visitor_test.go

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -49,22 +49,7 @@ func (ss SomethingSpecification) Expression() s.Visitable {
4949
func (ss SomethingSpecification) Evaluate( /* session session.PgxSession */ ) (
5050
sql string, params []driver.Valuer, err error,
5151
) {
52-
exp := ss.Expression()
53-
tv := NewTransformVisitor(TestGlobalScopeContext{})
54-
err = exp.Accept(tv)
55-
if err != nil {
56-
return "", nil, err
57-
}
58-
exp, err = tv.Result()
59-
if err != nil {
60-
return "", nil, err
61-
}
62-
v := NewPostgresqlVisitor()
63-
err = exp.Accept(v)
64-
if err != nil {
65-
return "", nil, err
66-
}
67-
return v.Result()
52+
return Compile(TestGlobalScopeContext{}, ss.Expression())
6853
}
6954

7055
type MemberSomethingId struct {

0 commit comments

Comments
 (0)