Skip to content

Commit 4505d61

Browse files
committed
improve WhereBuilder feature for package gdb
1 parent 04d32e7 commit 4505d61

File tree

3 files changed

+11
-47
lines changed

3 files changed

+11
-47
lines changed

database/gdb/gdb_model.go

-1
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,6 @@ func (c *Core) Model(tableNameQueryOrStruct ...interface{}) *Model {
135135
extraArgs: extraArgs,
136136
}
137137
m.whereBuilder = m.Builder()
138-
m.whereBuilder.safe = &m.safe
139138
if defaultModelSafe {
140139
m.safe = true
141140
}

database/gdb/gdb_model_builder.go

+2-16
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import (
1212

1313
// WhereBuilder holds multiple where conditions in a group.
1414
type WhereBuilder struct {
15-
safe *bool // If nil, it uses the safe attribute of its model.
1615
model *Model // A WhereBuilder should be bound to certain Model.
1716
whereHolder []WhereHolder // Condition strings for where operation.
1817
}
@@ -28,10 +27,7 @@ type WhereHolder struct {
2827

2928
// Builder creates and returns a WhereBuilder.
3029
func (m *Model) Builder() *WhereBuilder {
31-
// The WhereBuilder is safe in default when it is created using Builder().
32-
var isSafe = true
3330
b := &WhereBuilder{
34-
safe: &isSafe,
3531
model: m,
3632
whereHolder: make([]WhereHolder, 0),
3733
}
@@ -41,23 +37,12 @@ func (m *Model) Builder() *WhereBuilder {
4137
// getBuilder creates and returns a cloned WhereBuilder of current WhereBuilder if `safe` is true,
4238
// or else it returns the current WhereBuilder.
4339
func (b *WhereBuilder) getBuilder() *WhereBuilder {
44-
var isSafe bool
45-
if b.safe != nil {
46-
isSafe = *b.safe
47-
} else {
48-
isSafe = b.model.safe
49-
}
50-
if !isSafe {
51-
return b
52-
} else {
53-
return b.Clone()
54-
}
40+
return b.Clone()
5541
}
5642

5743
// Clone clones and returns a WhereBuilder that is a copy of current one.
5844
func (b *WhereBuilder) Clone() *WhereBuilder {
5945
newBuilder := b.model.Builder()
60-
newBuilder.safe = b.safe
6146
newBuilder.whereHolder = make([]WhereHolder, len(b.whereHolder))
6247
copy(newBuilder.whereHolder, b.whereHolder)
6348
return newBuilder
@@ -125,6 +110,7 @@ func (b *WhereBuilder) convertWhereBuilder(where interface{}, args []interface{}
125110
switch v := where.(type) {
126111
case WhereBuilder:
127112
builder = &v
113+
128114
case *WhereBuilder:
129115
builder = v
130116
}

frame/gins/gins_database.go

+9-30
Original file line numberDiff line numberDiff line change
@@ -53,45 +53,24 @@ func Database(name ...string) gdb.DB {
5353
if v, _ := Config().Get(ctx, configNodeKey); !v.IsEmpty() {
5454
configMap = v.Map()
5555
}
56+
// No configuration found, it formats and panics error.
5657
if len(configMap) == 0 && !gdb.IsConfigured() {
5758
// File configuration object checks.
58-
var (
59-
err error
60-
configFilePath string
61-
)
59+
var err error
6260
if fileConfig, ok := Config().GetAdapter().(*gcfg.AdapterFile); ok {
63-
if configFilePath, _ = fileConfig.GetFilePath(); configFilePath == "" {
64-
var (
65-
exampleFileName = "config.example.toml"
66-
exampleConfigFilePath string
67-
)
68-
if exampleConfigFilePath, _ = fileConfig.GetFilePath(exampleFileName); exampleConfigFilePath != "" {
69-
err = gerror.NewCodef(
70-
gcode.CodeMissingConfiguration,
71-
`configuration file "%s" not found, but found "%s", did you miss renaming the example configuration file?`,
72-
fileConfig.GetFileName(),
73-
exampleFileName,
74-
)
75-
} else {
76-
err = gerror.NewCodef(
77-
gcode.CodeMissingConfiguration,
78-
`configuration file "%s" not found, did you miss the configuration file or the misspell the configuration file name?`,
79-
fileConfig.GetFileName(),
80-
)
81-
}
82-
if err != nil {
83-
panic(err)
84-
}
61+
if _, err = fileConfig.GetFilePath(); err != nil {
62+
panic(gerror.WrapCode(gcode.CodeMissingConfiguration, err,
63+
`configuration not found, did you miss the configuration file or the misspell the configuration file name`,
64+
))
8565
}
8666
}
8767
// Panic if nothing found in Config object or in gdb configuration.
8868
if len(configMap) == 0 && !gdb.IsConfigured() {
89-
err = gerror.NewCodef(
69+
panic(gerror.NewCodef(
9070
gcode.CodeMissingConfiguration,
91-
`database initialization failed: "%s" node not found, is configuration file or configuration node missing?`,
71+
`database initialization failed: configuration missing for database node "%s"`,
9272
consts.ConfigNodeNameDatabase,
93-
)
94-
panic(err)
73+
))
9574
}
9675
}
9776

0 commit comments

Comments
 (0)