diff options
Diffstat (limited to 'customer/validators.go')
-rw-r--r-- | customer/validators.go | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/customer/validators.go b/customer/validators.go index a495772..b8c2a14 100644 --- a/customer/validators.go +++ b/customer/validators.go @@ -21,73 +21,8 @@ import ( "strings" "vidhukant.com/openbills/errors" u "vidhukant.com/openbills/util" - e "errors" ) -// NOTE: very inefficient and really really really dumb but it works -// TODO: find a better (or even a remotely good) way -func checkDuplicate(field, value string, userId uint) error { - if value != "" { - var count int64 - err := db.Model(&Customer{}). - Where("user_id = ? and " + field + " = ?", userId, value). - Count(&count). - Error - - if err != nil { - return err - } - - if count > 0 { - switch(field) { - case "phone": - return errors.ErrNonUniquePhone - case "email": - return errors.ErrNonUniqueEmail - case "website": - return errors.ErrNonUniqueWebsite - case "gstin": - return errors.ErrNonUniqueGSTIN - default: - return e.New(field + " is not unique") - } - } - } - - return nil -} - -func checkDuplicateExisting(field, value string, userId, customerId uint) error { - if value != "" { - var count int64 - err := db.Model(&Customer{}). - Where("user_id = ? and id != ? and " + field + " = ?", userId, customerId, value). - Count(&count). - Error - - if err != nil { - return err - } - - if count > 0 { - switch(field) { - case "phone": - return errors.ErrNonUniquePhone - case "email": - return errors.ErrNonUniqueEmail - case "website": - return errors.ErrNonUniqueWebsite - case "gstin": - return errors.ErrNonUniqueGSTIN - default: - return e.New(field + " is not unique") - } - } - } - - return nil -} - func (c *Customer) validate() error { // trim whitespaces c.FirmName = strings.TrimSpace(c.FirmName) @@ -125,21 +60,6 @@ func (c *Customer) validate() error { } } - var err error - for _, i := range [][]string{{"phone", c.Phone}, {"email", c.Email}, {"website", c.Website}, {"gstin", c.Gstin}} { - if c.ID != 0 { - err = checkDuplicateExisting(i[0], i[1], c.UserID, c.ID) - if err != nil { - return err - } - } else { - err = checkDuplicate(i[0], i[1], c.UserID) - if err != nil { - return err - } - } - } - return nil } |