Bootstrap copied BFF and local accounts with public Sendico contracts (#34)
This commit is contained in:
1 parent
67dc5b5b1e
commit
7062672a87
556 files changed
+42291
-777
No files matched your search
@@ -0,0 +1,29 @@
|
||||
package mask
|
||||
|
||||
import "strings"
|
||||
|
||||
func Email(email string) string {
|
||||
parts := strings.Split(email, "@")
|
||||
if len(parts) != 2 {
|
||||
return email
|
||||
}
|
||||
local := parts[0]
|
||||
if len(local) > 2 {
|
||||
local = local[:1] + "***" + local[len(local)-1:]
|
||||
} else {
|
||||
local = local[:1] + "***"
|
||||
}
|
||||
return local + "@" + parts[1]
|
||||
}
|
||||
|
||||
func Emails(emails []string) []string {
|
||||
if emails == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
masked := make([]string, len(emails))
|
||||
for i, email := range emails {
|
||||
masked[i] = Email(email)
|
||||
}
|
||||
return masked
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package mask
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestEmailsMasksEachEmail(t *testing.T) {
|
||||
got := Emails([]string{"alice@example.com", "bo@example.org", "invalid"})
|
||||
want := []string{"a***e@example.com", "b***@example.org", "invalid"}
|
||||
|
||||
if !reflect.DeepEqual(got, want) {
|
||||
t.Fatalf("Emails() = %#v, want %#v", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestEmailsPreservesNil(t *testing.T) {
|
||||
if got := Emails(nil); got != nil {
|
||||
t.Fatalf("Emails(nil) = %#v, want nil", got)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user