From e14cf986a916e1a7361b058224ef3badd3aad776 Mon Sep 17 00:00:00 2001 From: Horus3 Date: Thu, 19 Mar 2015 16:24:10 +0100 Subject: OOP. Creates virtual_domains and virtual_users now. Enhanced test suite. --- email.go | 48 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 9 deletions(-) (limited to 'email.go') diff --git a/email.go b/email.go index 150b7fb..1e9c4e3 100644 --- a/email.go +++ b/email.go @@ -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] } -- cgit v1.2.3