Organize backend into product executable and shared Go modules

This commit is contained in:
Stephan D committed 2026-09-12 14:14:08 +02:00
1 parent 981e84a4b4
commit f0720ec66b
382 files changed
+1944 -6989

No files matched your search

+29
View File
@@ -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
}
+21
View File
@@ -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)
}
}