diff options
-rw-r--r-- | customer/customer.go | 6 | ||||
-rw-r--r-- | customer/hooks.go | 14 | ||||
-rw-r--r-- | customer/service.go | 2 | ||||
-rw-r--r-- | item/hooks.go | 5 | ||||
-rw-r--r-- | main.go | 2 |
5 files changed, 24 insertions, 5 deletions
diff --git a/customer/customer.go b/customer/customer.go index e411ad5..1a5d6f1 100644 --- a/customer/customer.go +++ b/customer/customer.go @@ -39,11 +39,13 @@ type Address struct { } type CustomerBillingAddress struct { + gorm.Model Address CustomerID uint } type CustomerShippingAddress struct { + gorm.Model Address CustomerID uint } @@ -58,6 +60,6 @@ type Customer struct { Phone string Email string Website string - //BillingAddress CustomerBillingAddress - //ShippingAddresses []CustomerShippingAddress + BillingAddress CustomerBillingAddress + ShippingAddresses []CustomerShippingAddress } diff --git a/customer/hooks.go b/customer/hooks.go index ac246f3..bef3308 100644 --- a/customer/hooks.go +++ b/customer/hooks.go @@ -39,5 +39,19 @@ func (c *Customer) BeforeDelete(tx *gorm.DB) error { return errors.ErrNoWhereCondition } + var err error + + // delete billing address + err = db.Where("customer_id = ?", c.ID).Delete(&CustomerBillingAddress{}).Error + if err != nil { + return err + } + + // delete shipping addresses + err = db.Where("customer_id = ?", c.ID).Delete(&CustomerShippingAddress{}).Error + if err != nil { + return err + } + return nil } diff --git a/customer/service.go b/customer/service.go index f1108c6..a79e466 100644 --- a/customer/service.go +++ b/customer/service.go @@ -22,7 +22,7 @@ import ( ) func getCustomer(customer *Customer, id uint) error { - res := db.Preload("Contact").Preload("BillingAddress").Preload("ShippingAddresses").Find(&customer, id) + res := db.Preload("BillingAddress").Preload("ShippingAddresses").Find(&customer, id) // TODO: handle potential errors if res.Error != nil { diff --git a/item/hooks.go b/item/hooks.go index c7dc498..74b6860 100644 --- a/item/hooks.go +++ b/item/hooks.go @@ -60,7 +60,10 @@ func (b *Brand) BeforeDelete(tx *gorm.DB) error { } // delete all items - db.Where("brand_id = ? and user_id = ?", b.ID, b.UserID).Delete(&SavedItem{}) + err := db.Where("brand_id = ? and user_id = ?", b.ID, b.UserID).Delete(&SavedItem{}).Error + if err != nil { + return err + } return nil } @@ -37,7 +37,7 @@ import ( "log" ) -const OPENBILLS_VERSION = "v0.0.4" +const OPENBILLS_VERSION = "v0.0.5" func init() { if viper.GetBool("production_mode") { |