Files
im_server/server/db/mysql/user_identity.go
T

41 lines
980 B
Go

//go:build mysql
// +build mysql
package mysql
import (
"strings"
"github.com/nyaruka/phonenumbers"
t "github.com/tinode/chat/server/store/types"
)
func normalizeUserPhone(value string) (string, error) {
value = strings.TrimSpace(strings.TrimPrefix(strings.TrimPrefix(value, "tel:"), "basic:"))
if value == "" {
return "", t.ErrMalformed
}
number, err := phonenumbers.Parse(value, "CN")
if err != nil || !phonenumbers.IsValidNumber(number) {
return "", t.ErrMalformed
}
numberType := phonenumbers.GetNumberType(number)
if numberType != phonenumbers.MOBILE && numberType != phonenumbers.FIXED_LINE_OR_MOBILE {
return "", t.ErrMalformed
}
return phonenumbers.Format(number, phonenumbers.E164), nil
}
func withoutUserTags(update map[string]any) map[string]any {
if update == nil {
return nil
}
clean := make(map[string]any, len(update))
for key, value := range update {
if key != "Tags" && key != "tags" {
clean[key] = value
}
}
return clean
}