From 039fb0ce71d132a1dfe93b516bc5953dcb61285e Mon Sep 17 00:00:00 2001 From: horus_arch Date: Fri, 20 Mar 2015 01:01:30 +0100 Subject: Bundling functionality in server.go and improving code flow. --- server.go | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 server.go (limited to 'server.go') diff --git a/server.go b/server.go new file mode 100644 index 0000000..a0146b9 --- /dev/null +++ b/server.go @@ -0,0 +1,37 @@ +package main + +import ( + "errors" +) + +func CreateNewEntry(email, password string) error { + if !ValidateEmail(email) { + return errors.New("This doesn't look like a mail adress.") + } + + vU := VirtualUser{Email: email, Password: password} + + if vU.EmailExists() { + return errors.New("Mail adress already exists.") + } + + vD := VirtualDomain{} + vD.Name = GetDomain(vU.Email) + + if !vD.ValidateDomain() { + return errors.New("This doesn't look like a good domain. Host not found.") + } + + if !vD.DomainExists() { + if !vD.CreateDomain() { + return errors.New("There was an error.") + } + } + + vU.DomainId = vD.GetPrimaryKey() + + if !vU.CreateEmail() { + return errors.New("There was an error.") + } + return nil +} -- cgit v1.2.3