summaryrefslogtreecommitdiff
path: root/email.go
blob: 1e9c4e3803b55110782bc6d32049466ee1d91a7c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package main

import (
	"log"
	"strings"
)

func (vU VirtualUser) EmailExists() bool {
	query := Db.Where("email = ?", vU.Email).Find(&vU)
	if query.Error != nil {
		log.Println(query.Error)
		return false
	}
	if vU.Email == "" {
		return false
	}
	return true
}

func (vU VirtualUser) CreateEmail() bool {
	if !Db.Debug().NewRecord(vU) {
		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
	}
	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
}

func GetDomain(email string) string {
	fragments := strings.Split(email, "@")
	return fragments[len(fragments)-1]
}