Cleanup some codes
This commit is contained in:
parent
1c49c4ef85
commit
0327deec14
1
chain.go
1
chain.go
@ -30,6 +30,7 @@ type Chain struct {
|
|||||||
func (s *Chain) driver() string {
|
func (s *Chain) driver() string {
|
||||||
return s.d.driver
|
return s.d.driver
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Chain) err(err error) error {
|
func (s *Chain) err(err error) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.Errors = append(s.Errors, err)
|
s.Errors = append(s.Errors, err)
|
||||||
|
28
do.go
28
do.go
@ -37,9 +37,7 @@ type Do struct {
|
|||||||
|
|
||||||
func (s *Do) tableName() string {
|
func (s *Do) tableName() string {
|
||||||
if len(s.specifiedTableName) == 0 {
|
if len(s.specifiedTableName) == 0 {
|
||||||
var err error
|
s.guessedTableName = s.model.tableName()
|
||||||
s.guessedTableName, err = s.model.tableName()
|
|
||||||
s.err(err)
|
|
||||||
return s.guessedTableName
|
return s.guessedTableName
|
||||||
} else {
|
} else {
|
||||||
return s.specifiedTableName
|
return s.specifiedTableName
|
||||||
@ -172,8 +170,8 @@ func (s *Do) saveAfterAssociations() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *Do) create() (i interface{}) {
|
func (s *Do) create() (i interface{}) {
|
||||||
s.err(s.model.callMethod("BeforeCreate"))
|
s.model.callMethod("BeforeCreate")
|
||||||
s.err(s.model.callMethod("BeforeSave"))
|
s.model.callMethod("BeforeSave")
|
||||||
|
|
||||||
s.saveBeforeAssociations()
|
s.saveBeforeAssociations()
|
||||||
s.prepareCreateSql()
|
s.prepareCreateSql()
|
||||||
@ -197,8 +195,8 @@ func (s *Do) create() (i interface{}) {
|
|||||||
}
|
}
|
||||||
s.saveAfterAssociations()
|
s.saveAfterAssociations()
|
||||||
|
|
||||||
s.err(s.model.callMethod("AfterCreate"))
|
s.model.callMethod("AfterCreate")
|
||||||
s.err(s.model.callMethod("AfterSave"))
|
s.model.callMethod("AfterSave")
|
||||||
}
|
}
|
||||||
return id
|
return id
|
||||||
}
|
}
|
||||||
@ -265,8 +263,8 @@ func (s *Do) update() (i int64) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
s.err(s.model.callMethod("BeforeUpdate"))
|
s.model.callMethod("BeforeUpdate")
|
||||||
s.err(s.model.callMethod("BeforeSave"))
|
s.model.callMethod("BeforeSave")
|
||||||
|
|
||||||
s.saveBeforeAssociations()
|
s.saveBeforeAssociations()
|
||||||
s.prepareUpdateSql(update_attrs)
|
s.prepareUpdateSql(update_attrs)
|
||||||
@ -275,10 +273,8 @@ func (s *Do) update() (i int64) {
|
|||||||
s.exec()
|
s.exec()
|
||||||
s.saveAfterAssociations()
|
s.saveAfterAssociations()
|
||||||
|
|
||||||
if !s.hasError() {
|
s.model.callMethod("AfterUpdate")
|
||||||
s.err(s.model.callMethod("AfterUpdate"))
|
s.model.callMethod("AfterSave")
|
||||||
s.err(s.model.callMethod("AfterSave"))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return s.model.primaryKeyValue()
|
return s.model.primaryKeyValue()
|
||||||
@ -290,7 +286,7 @@ func (s *Do) prepareDeleteSql() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *Do) delete() {
|
func (s *Do) delete() {
|
||||||
s.err(s.model.callMethod("BeforeDelete"))
|
s.model.callMethod("BeforeDelete")
|
||||||
|
|
||||||
if !s.hasError() {
|
if !s.hasError() {
|
||||||
if !s.unscoped && s.model.hasColumn("DeletedAt") {
|
if !s.unscoped && s.model.hasColumn("DeletedAt") {
|
||||||
@ -301,9 +297,7 @@ func (s *Do) delete() {
|
|||||||
s.prepareDeleteSql()
|
s.prepareDeleteSql()
|
||||||
s.exec()
|
s.exec()
|
||||||
}
|
}
|
||||||
if !s.hasError() {
|
s.model.callMethod("AfterDelete")
|
||||||
s.err(s.model.callMethod("AfterDelete"))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -1218,25 +1218,25 @@ func TestTableName(t *testing.T) {
|
|||||||
var table string
|
var table string
|
||||||
|
|
||||||
model := &Model{data: Order{}}
|
model := &Model{data: Order{}}
|
||||||
table, _ = model.tableName()
|
table = model.tableName()
|
||||||
if table != "orders" {
|
if table != "orders" {
|
||||||
t.Errorf("Order table name should be orders")
|
t.Errorf("Order table name should be orders")
|
||||||
}
|
}
|
||||||
|
|
||||||
db.SingularTable(true)
|
db.SingularTable(true)
|
||||||
table, _ = model.tableName()
|
table = model.tableName()
|
||||||
if table != "order" {
|
if table != "order" {
|
||||||
t.Errorf("Order's singular table name should be order")
|
t.Errorf("Order's singular table name should be order")
|
||||||
}
|
}
|
||||||
|
|
||||||
model2 := &Model{data: Cart{}}
|
model2 := &Model{data: Cart{}}
|
||||||
table, _ = model2.tableName()
|
table = model2.tableName()
|
||||||
if table != "shopping_cart" {
|
if table != "shopping_cart" {
|
||||||
t.Errorf("Cart's singular table name should be shopping_cart")
|
t.Errorf("Cart's singular table name should be shopping_cart")
|
||||||
}
|
}
|
||||||
|
|
||||||
model3 := &Model{data: &Cart{}}
|
model3 := &Model{data: &Cart{}}
|
||||||
table, _ = model3.tableName()
|
table = model3.tableName()
|
||||||
if table != "shopping_cart" {
|
if table != "shopping_cart" {
|
||||||
t.Errorf("Cart's singular table name should be shopping_cart")
|
t.Errorf("Cart's singular table name should be shopping_cart")
|
||||||
}
|
}
|
||||||
|
18
model.go
18
model.go
@ -277,9 +277,9 @@ func (m *Model) typeName() string {
|
|||||||
return typ.Name()
|
return typ.Name()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Model) tableName() (str string, err error) {
|
func (m *Model) tableName() (str string) {
|
||||||
if m.data == nil {
|
if m.data == nil {
|
||||||
err = errors.New("Model haven't been set")
|
m.do.err(errors.New("Model haven't been set"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -288,7 +288,7 @@ func (m *Model) tableName() (str string, err error) {
|
|||||||
v := fm.Call([]reflect.Value{})
|
v := fm.Call([]reflect.Value{})
|
||||||
if len(v) > 0 {
|
if len(v) > 0 {
|
||||||
if result, ok := v[0].Interface().(string); ok {
|
if result, ok := v[0].Interface().(string); ok {
|
||||||
return result, nil
|
return result
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -300,7 +300,7 @@ func (m *Model) tableName() (str string, err error) {
|
|||||||
for key, value := range pluralMap {
|
for key, value := range pluralMap {
|
||||||
reg := regexp.MustCompile(key + "$")
|
reg := regexp.MustCompile(key + "$")
|
||||||
if reg.MatchString(str) {
|
if reg.MatchString(str) {
|
||||||
return reg.ReplaceAllString(str, value), err
|
return reg.ReplaceAllString(str, value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -308,9 +308,9 @@ func (m *Model) tableName() (str string, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Model) callMethod(method string) error {
|
func (m *Model) callMethod(method string) {
|
||||||
if m.data == nil {
|
if m.data == nil || m.do.hasError() {
|
||||||
return nil
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
fm := reflect.ValueOf(m.data).MethodByName(method)
|
fm := reflect.ValueOf(m.data).MethodByName(method)
|
||||||
@ -318,11 +318,11 @@ func (m *Model) callMethod(method string) error {
|
|||||||
v := fm.Call([]reflect.Value{})
|
v := fm.Call([]reflect.Value{})
|
||||||
if len(v) > 0 {
|
if len(v) > 0 {
|
||||||
if verr, ok := v[0].Interface().(error); ok {
|
if verr, ok := v[0].Interface().(error); ok {
|
||||||
return verr
|
m.do.err(verr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Model) returningStr() (str string) {
|
func (m *Model) returningStr() (str string) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user