diff options
| author | Horus3 | 2015-03-19 16:24:10 +0100 |
|---|---|---|
| committer | Horus3 | 2015-03-19 16:24:10 +0100 |
| commit | e14cf986a916e1a7361b058224ef3badd3aad776 (patch) | |
| tree | a5ae9b523cd9999bcb51daccb7864298606cac63 /email.go | |
| parent | f334c93c0364d14a2b55641b155ad58f715a4b39 (diff) | |
| download | freemail-e14cf986a916e1a7361b058224ef3badd3aad776.tar.gz | |
OOP. Creates virtual_domains and virtual_users now. Enhanced test suite.
Diffstat (limited to 'email.go')
| -rw-r--r-- | email.go | 48 |
1 files changed, 39 insertions, 9 deletions
@@ -2,11 +2,11 @@ package main import ( "log" + "strings" ) -func EmailExists(email string) bool { - vU := VirtualUser{} - query := Db.Where(map[string]interface{}{"email": email}).Find(&vU) +func (vU VirtualUser) EmailExists() bool { + query := Db.Where("email = ?", vU.Email).Find(&vU) if query.Error != nil { log.Println(query.Error) return false @@ -17,13 +17,43 @@ func EmailExists(email string) bool { return true } -func CreateEmail(email, password string) (bool, error) { - vU := VirtualUser{Email: email, Password: password} +func (vU VirtualUser) CreateEmail() bool { if !Db.Debug().NewRecord(vU) { - log.Println("Creating new record failed.") - return false, nil + log.Println("Creating new record failed.", vU) + return false + } + query := Db.Debug().Create(&vU) + if query.Error != nil { + log.Println(query.Error) + return false + } + return true +} + +func ValidateEmail(email string) bool { + if !strings.Contains(email, "@") { + return false + } + if strings.HasPrefix(email, "@") { + return false } - Db.Debug().Create(&vU) + if strings.HasSuffix(email, "@") { + return false + } + if strings.Count(email, "@") != 1 { + return false + } + return true +} + +func ValidateAlias(alias string) bool { + if !strings.Contains(alias, "@") { + return false + } + return true +} - return true, nil +func GetDomain(email string) string { + fragments := strings.Split(email, "@") + return fragments[len(fragments)-1] } |
